diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 07847e0574a63c5785c48fe42448c2fbaa1530e8..32b7bfc47f069bb8ee672a1c9d3953e06287eb03 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -351,6 +351,16 @@ int main(int argc, char *argv[]) {
       if (parset.get<bool>("useTNNMG")) {
         MyConvexProblemType myConvexProblem(stiffnessMatrix,
                                             *myGlobalNonlinearity, b4, u4_diff);
+
+        // FIXME: This is sort of nasty
+        // Choose an initial iterate that is admissable
+        // and non-zero in as many places as possible
+        if (run == 1)
+          for (size_t i = 0; i < ignoreNodes.size(); ++i)
+            if (!ignoreNodes[i][1]) // Leave out partial DOF-restrictions as
+                                    // well
+              u4_diff[i] = 1;
+
         MyBlockProblemType myBlockProblem(parset, myConvexProblem);
         multigridStep->setProblem(u4_diff, myBlockProblem);