diff --git a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
index 4b180fb65383ad4d9ad745ea910677001d6d5b31..d91cd55003137958b5fe3c5b6e35680780fc6c0e 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
+++ b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
@@ -27,18 +27,14 @@ void updateGrid27(Parameter* para,
 
     //////////////////////////////////////////////////////////////////////////
     int borderStreamIndex = 1;
-    int bulkStreamIndex   = 0;
-
-    if (para->getUseStreams()) {
-        // launch border kernel
-        collisionUsingIndex(para, pm, level, t, kernels, para->getParD(level)->fluidNodeIndicesBorder,
-                            para->getParD(level)->numberOffluidNodesBorder, borderStreamIndex);
-    } else
-        collision(para, pm, level, t, kernels);
+    int bulkStreamIndex   = 0;      
    
     //////////////////////////////////////////////////////////////////////////
 
     if (para->getUseStreams() && para->getNumprocs() > 1) {
+        // launch border kernel
+        collisionUsingIndex(para, pm, level, t, kernels, para->getParD(level)->fluidNodeIndicesBorder,
+                            para->getParD(level)->numberOffluidNodesBorder, borderStreamIndex);
         //prepare exchange and trigger bulk kernel when finished
         prepareExchangeMultiGPU(para, level, borderStreamIndex);
         if (para->getUseStreams())
@@ -51,6 +47,7 @@ void updateGrid27(Parameter* para,
 
         exchangeMultiGPU(para, comm, cudaManager, level, borderStreamIndex);
     } else {
+        collision(para, pm, level, t, kernels);
         prepareExchangeMultiGPU(para, level, -1);
         exchangeMultiGPU(para, comm, cudaManager, level, -1);
     }