diff --git a/src/petsc4Foam/utils/petscCacheManager.H b/src/petsc4Foam/utils/petscCacheManager.H
index a1a80ece61da39fcc311526431f8b832c81c692e..701562822db3eea81bdad4048be4bf10fc30cfa4 100644
--- a/src/petsc4Foam/utils/petscCacheManager.H
+++ b/src/petsc4Foam/utils/petscCacheManager.H
@@ -244,22 +244,24 @@ private:
 
     bool needsUpdate(const PetscUtils::Caching& caching, label& iter) const
     {
+        // Default: Always update
+        bool need = true; 
         switch (caching.updateType_)
         {
             case PetscUtils::Caching::Never:
             {
-                return false;
+                need = false;
                 break;
             }
 
             case PetscUtils::Caching::Always:
             {
-                return true;
                 break;
             }
 
             case PetscUtils::Caching::Periodic:
             {
+                need = false;
                 if
                 (
                     caching.updateFreq_ <= 1
@@ -267,13 +269,14 @@ private:
                 )
                 {
                     iter = 0;
-                    return true;
+                    need = true;
                 }
                 break;
             }
 
             case PetscUtils::Caching::Adaptive:
             {
+                need = false;
                 if (iter > 3) // we need at least three times
                 {
                     const double ratio0 =
@@ -288,16 +291,13 @@ private:
                     if (iter >= nsteps)
                     {
                         iter = 0;
-                        return true;
+                        need = true;
                     }
                 }
-
                 break;
             }
         }
-
-        // Default: Always update
-        return true;
+        return need;
     }
 };