diff --git a/IO/IniFileParser.cpp b/IO/IniFileParser.cpp
index 3f15db36855231d186493fbb37ae1b00cd398007..d6150e622799d931b494ae17378903fd01e12b24 100644
--- a/IO/IniFileParser.cpp
+++ b/IO/IniFileParser.cpp
@@ -1163,6 +1163,15 @@ bool IniFileParser::ParseFfRouterOps(TiXmlNode* routingNode, RoutingStrategy s)
                }
           }
      }
+     _config->set_write_VTK_files(false);
+     if (routingNode->FirstChild("parameters")) {
+          TiXmlNode* pParametersForAllFF = routingNode->FirstChild("parameters");
+          if (pParametersForAllFF->FirstChild("write_VTK_files"))  {
+               //remark: std::strcmp returns 0 if the strings are equal
+               bool tmp_write_VTK = !std::strcmp(pParametersForAllFF->FirstChild("write_VTK_files")->FirstChild()->Value(), "true");
+               _config->set_write_VTK_files(tmp_write_VTK);
+          }
+     }
      FFRouter* r = static_cast<FFRouter*>(_config->GetRoutingEngine()->GetAvailableRouters().back());
 
 
diff --git a/general/Configuration.h b/general/Configuration.h
index 4b5419ee0daf54494a4db325c2c53857186c1445..b523647b9addd4b0786c8e962bebae37aa1f7482 100644
--- a/general/Configuration.h
+++ b/general/Configuration.h
@@ -109,6 +109,7 @@ public:
 
           //ff router
           _has_specific_goals = false;
+          _write_VTK_files = false;
      }
 
      int GetSolver() const { return _solver; };
@@ -248,6 +249,10 @@ public:
 
      void set_has_specific_goals(bool has_specific_goals) { _has_specific_goals = has_specific_goals;}
 
+     void set_write_VTK_files(bool write_VTK_files) {_write_VTK_files = write_VTK_files;}
+
+     bool get_write_VTK_files() const {return _write_VTK_files;}
+
      const std::string& GetHostname() const { return _hostname; };
 
      void SetHostname(std::string hostname) { _hostname = hostname; };
@@ -352,6 +357,7 @@ private:
 
      //ff router
      bool _has_specific_goals;
+     bool _write_VTK_files;
 
      std::string _hostname;
      std::string _trajectoriesFile;
diff --git a/routing/ff_router/ffRouter.cpp b/routing/ff_router/ffRouter.cpp
index 5d8f3b5c0bce5060f3e0ed8764d906211710d61e..580da024400398ee9465fd02a0fe2e0934f8c709 100644
--- a/routing/ff_router/ffRouter.cpp
+++ b/routing/ff_router/ffRouter.cpp
@@ -314,12 +314,14 @@ bool FFRouter::Init(Building* building)
      //int transTest = (building->GetRoom(roomTest)->GetAllTransitionsIDs())[0];
      //auto test = _CroTrByUID.at(1253);
 
-//     for (unsigned int i = 0; i < _locffviafm.size(); ++i) {
-//          auto iter = _locffviafm.begin();
-//          std::advance(iter, i);
-//          int roomNr = iter->first;
-//          iter->second->writeFF("testFF" + std::to_string(roomNr) + ".vtk", _allDoorUIDs);
-//     }
+     if (_config->get_write_VTK_files()) {
+          for (unsigned int i = 0; i < _locffviafm.size(); ++i) {
+               auto iter = _locffviafm.begin();
+               std::advance(iter, i);
+               int roomNr = iter->first;
+               iter->second->writeFF("ffrouterOfRoom" + std::to_string(roomNr) + ".vtk", _allDoorUIDs);
+          }
+     }
 
 //     std::ofstream matrixfile;
 //     matrixfile.open("Matrix.txt");