diff --git a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
index d62e9607d1325aad734458e33f032faaa0251697..96f5287fce35051bfd5c0d0e6681cc3361769cfc 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
+++ b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
@@ -92,13 +92,16 @@ void updateGrid27(Parameter *para, vf::gpu::Communicator *comm, CudaMemoryManage
             }
 
             coarseToFine(para, level);
-        } else {
+        } else if (para->getNumprocs() > 1) {
             fineToCoarse(para, level);
 
-            prepareExchangeMultiGPU(para, level, -1);
-            exchangeMultiGPU(para, comm, cudaManager, level, -1);
+             prepareExchangeMultiGPU(para, level, -1);
+             exchangeMultiGPU(para, comm, cudaManager, level, -1);
 
             coarseToFine(para, level);
+        } else {
+            fineToCoarse(para, level);
+            coarseToFine(para, level);
         }
     }
 }