diff --git a/common/fmatrix.hh b/common/fmatrix.hh
index 3b335819e6eedd6df5f085199b66174d2260a1cb..635a3b6c3267730e88c55fe23d1a7319c39984de 100644
--- a/common/fmatrix.hh
+++ b/common/fmatrix.hh
@@ -704,7 +704,8 @@ namespace Dune {
       }
 
       // U A^{-1} = Y
-      for (size_type i=n-1; i!=0; i--) {
+      for (size_type i=n; i>0;) {
+        --i;
         for (size_type k=0; k<n; k++) {
           for (size_type j=i+1; j<n; j++)
             p[i][k] -= U[i][j]*p[j][k];
@@ -712,7 +713,8 @@ namespace Dune {
         }
       }
 
-      for(size_type i=n-1; i!=0; --i) {
+      for(size_type i=n; i>0; ) {
+        --i;
         if(i!=pivot[i])
           for(size_type j=0; j<n; ++j)
             std::swap(p[j][pivot[i]], p[j][i]);