diff --git a/src/OpenFOAM/matrices/Matrix/Matrix.C b/src/OpenFOAM/matrices/Matrix/Matrix.C
index fc262b707b825c85b95067ce6ffa4f50d99bb28d..0ba6168888428ee34a199c22e2374a50c2b8ebd2 100644
--- a/src/OpenFOAM/matrices/Matrix/Matrix.C
+++ b/src/OpenFOAM/matrices/Matrix/Matrix.C
@@ -1020,9 +1020,9 @@ operator&
         Zero
     );
 
-    for (label i = 0; i < AB.m(); ++i)
+    for (label k = 0; k < B.m(); ++k)
     {
-        for (label k = 0; k < B.m(); ++k)
+        for (label i = 0; i < AB.m(); ++i)
         {
             for (label j = 0; j < AB.n(); ++j)
             {
@@ -1065,9 +1065,9 @@ operator^
 
     for (label i = 0; i < AB.m(); ++i)
     {
-        for (label k = 0; k < BT.n(); ++k)
+        for (label j = 0; j < AB.n(); ++j)
         {
-            for (label j = 0; j < AB.n(); ++j)
+            for (label k = 0; k < BT.n(); ++k)
             {
                 AB(i, j) += A(i, k)*Detail::conj(BT(j, k));
             }