diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
index 3f4ffcabbba3fc7e3768897918e080c577125518..df616a41bfc889145dfdca09e4883ca1581a20af 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
@@ -360,18 +360,17 @@ void Parameter::initGridPaths(){
     std::string gridPath = this->getGridPath();
 
     // add missing slash to gridPath
-    if (gridPath.back() != '/')
-    {
+    if (gridPath.back() != '/') {
         gridPath += "/";
-        this->setGridPath(gridPath);
+        ic.gridPath = gridPath;
     }
 
-    // for multi-gpu add process id
-    if (this->getNumprocs() > 1){
+    // for multi-gpu add process id (if not already there)
+    if (this->getNumprocs() > 1) {
         gridPath += StringUtil::toString(this->getMyID()) + "/";
-        this->setGridPath(gridPath);
+        ic.gridPath = gridPath;
     }
-    
+
     //////////////////////////////////////////////////////////////////////////
         
     this->setgeoVec(gridPath + "geoVec.dat");
@@ -758,6 +757,7 @@ void Parameter::setFName(std::string fname)
 void Parameter::setGridPath(std::string gridPath)
 {
     ic.gridPath = gridPath;
+    this->initGridPaths();
 }
 void Parameter::setPrintFiles(bool printfiles)
 {