diff --git a/src/duneminimise.cc b/src/duneminimise.cc
index 23e14f46ae356dcdd741e53008b323a00b3ca501..01ed50510ed973749752e5a8a3df205d1b7f9bbe 100644
--- a/src/duneminimise.cc
+++ b/src/duneminimise.cc
@@ -38,11 +38,9 @@ Make a minimisation step of x -> 1/2<Ax,x> - <b,x> + H(|x|) using DUNE starting
   Functional::SmallVector start;
   Dune::octaveToDune<dim>(current, start);
 
-  Functional::SmallVector correction;
-  Dune::minimise(J, start, correction);
+  Dune::minimise(J, start);
 
-  ColumnVector ret(dim);
-  Dune::duneToOctave<dim>(correction, ret);
+  Dune::duneToOctave<dim>(start, current);
 
-  return octave_value(ret);
+  return octave_value(current);
 }
diff --git a/src/foo.m b/src/foo.m
index b7d127550731dc762154a19d90de8018e7ff7bce..cf5f4d047fdcf6a085f6fefc7869b1d818b73160 100644
--- a/src/foo.m
+++ b/src/foo.m
@@ -26,8 +26,8 @@ oldvec = [279; 0]; # Something random that takes a couple of iterations
 olddiff = [ 0; 0];
 
 for i = 1:10 # Something random
-  newdiff = duneminimise(oldvec);
-  newvec = oldvec + newdiff;
+  newvec = duneminimise(oldvec);
+  newdiff = newvec - oldvec;
   line([oldvec(1) newvec(1)], ...
        [oldvec(2) newvec(2)], ...
        [duneevaluate(oldvec) duneevaluate(newvec)], ...