diff --git a/src/common.hpp b/src/common.hpp
index a44fc94c4b5abbe28dfe3c6948e86298e95e2034..86fff1edb01e604fa6bf85363ec24d631a5be400 100644
--- a/src/common.hpp
+++ b/src/common.hpp
@@ -12,10 +12,15 @@
 
 #include <Eigen/Core>
 
+#ifdef NDEBUG
+#include <cppad/cppad.hpp>
+#include <cppad/example/cppad_eigen.hpp>
+#else
 #define NDEBUG
 #include <cppad/cppad.hpp>
 #include <cppad/example/cppad_eigen.hpp>
 #undef NDEBUG
+#endif
 
 #include <adept.h>
 
diff --git a/tests/test_solver.py b/tests/test_solver.py
index e932abd458b6db6e9d1eccda7a24dd28338fe006..138d4b5268c539822410f02f34397373175f51a5 100644
--- a/tests/test_solver.py
+++ b/tests/test_solver.py
@@ -172,8 +172,7 @@ def test_selfcons_kupriyanov(request, T):
         phase_mask=phase_mask,
         filename=cache_fn,
         tol=1e-6,
-        workers=1,
-        plot=True,
+        workers=-1,
     )
 
     phis, Deltas, Js = res
diff --git a/usadelndsoc/solver.py b/usadelndsoc/solver.py
index 42b2ead556f7c58dd945d6f29dcdd6f83bff15a3..68b56a28a23fa626b5ada40c3060f26dd716e029 100644
--- a/usadelndsoc/solver.py
+++ b/usadelndsoc/solver.py
@@ -744,6 +744,8 @@ def _self_consistency(
             Delta1 = solver.Delta.copy()
             Delta1[Delta_mask] = z[constraint_x.size :].view(complex).reshape(-1, 2, 2)
 
+            solver.reset()
+
             if constraint_fun is not None:
                 res_cons = constraint_fun(cx, Delta1).ravel()
                 # Constraint function updates terminal phases
@@ -938,7 +940,6 @@ class CPRState:
             solver.mask,
             solver.Lx,
             solver.Ly,
-            solver.Lz,
             extra_params,
         )
         h = hashlib.sha512()
@@ -960,10 +961,8 @@ class CPRState:
                 mask=self.solver.mask,
                 Lx=self.solver.Lx,
                 Ly=self.solver.Ly,
-                Lz=self.solver.Lz,
                 x=self.solver.x,
                 y=self.solver.y,
-                z=self.solver.z,
             )
         except:
             os.unlink(fn)