diff --git a/dirneucoupling.cc b/dirneucoupling.cc
index 1ca7ba9b4afe758371679d6954b87eafa462f2a5..f712ddebd6846bd0fb09af957e0a1aa192ad6ed9 100644
--- a/dirneucoupling.cc
+++ b/dirneucoupling.cc
@@ -80,6 +80,7 @@ int main (int argc, char *argv[]) try
     const double baseTolerance = parameterSet.get<double>("baseTolerance");
     const double initialTrustRegionRadius = parameterSet.get<double>("initialTrustRegionRadius");
     const double damping       = parameterSet.get<double>("damping");
+    std::string resultPath           = parameterSet.get("resultPath", "");
 
     // Problem settings
     std::string path = parameterSet.get<string>("path");
@@ -559,9 +560,9 @@ int main (int argc, char *argv[]) try
     // //////////////////////////////
     LeafAmiraMeshWriter<GridType> amiraMeshWriter(grid);
     amiraMeshWriter.addVertexData(x3d, grid.leafIndexSet());
-    amiraMeshWriter.write("grid.result");
+    amiraMeshWriter.write(resultPath + "grid.result");
 
-    writeRod(rodX, "rod3d.result");
+    writeRod(rodX, resultPath + "rod3d.result");
 
  } catch (Exception e) {