diff --git a/src/core.cpp b/src/core.cpp
index dc79a75e01e7fc701656053c24a44ead28c88183..f641191b892b44d782cc857a8d0daee0f38277e3 100644
--- a/src/core.cpp
+++ b/src/core.cpp
@@ -380,8 +380,8 @@ public:
                         if (i2 >= (int)nx_ || j2 >= (int)ny_)
                             continue;
 
-                        U.part(i,j,k).matrix() = U_.part(i,j,k).matrix()
-                            + J.part(i,j,k).matrix() * U_.part(i,j,k).matrix()
+                        U.part(i,j,k).matrix() +=
+                            J.part(i,j,k).matrix() * U_.part(i,j,k).matrix()
                             - U_.part(i,j,k).matrix() * J.part(i2,j2,invdir[k]).matrix();
                     }
                 }