diff --git a/src/myblockproblem.hh b/src/myblockproblem.hh
index 1457c813ee9b650c69e2b3d10ae3205b2c969f23..283f303f636b7c35a4be90b7b1172fb392f9be2d 100644
--- a/src/myblockproblem.hh
+++ b/src/myblockproblem.hh
@@ -125,8 +125,8 @@ class MyBlockProblem<ConvexProblemTypeTEMPLATE>::IterateObject {
         Dune::minimise(localJ, ui_copy, correction);
         ui_copy += correction;
       }
-
-      ui = ui_copy;
+      // FIXME: this makes no sense. Why does it work this way?!
+      ui -= ui_copy;
       return;
     }