diff --git a/dirneucoupling.cc b/dirneucoupling.cc
index 8ce54bd69e220cec4db990a9eea1c7d26271ee0a..e9cde995265b3643011675ebb892090dcb058fce 100644
--- a/dirneucoupling.cc
+++ b/dirneucoupling.cc
@@ -157,19 +157,40 @@ int main (int argc, char *argv[]) try
     // /////////////////////////////////////////
     //   Read Dirichlet values
     // /////////////////////////////////////////
-    rodX.back().r = parameterSet.get("dirichletValue", rodRestEndPoint[1]);
+    rodFactory.create(complex.rods_["rod"].dirichletValues_,
+                      RigidBodyMotion<3>(FieldVector<double,3>(0), Rotation<3,double>::identity()));
+    BitSetVector<1> rodDNodes(complex.rods_["rod"].dirichletValues_.size(), false);
+
+    if (parameterSet.hasKey("dirichletValue0")){
+        
+        rodX[0].r = parameterSet.get("dirichletValue0", rodRestEndPoint[0]);
 
-    FieldVector<double,3> axis = parameterSet.get("dirichletAxis", FieldVector<double,3>(0));
-    double angle = parameterSet.get("dirichletAngle", double(0));
+        FieldVector<double,3> axis = parameterSet.get("dirichletAxis0", FieldVector<double,3>(0));
+        double angle = parameterSet.get("dirichletAngle0", double(0));
 
-    rodX.back().q = Rotation<3,double>(axis, M_PI*angle/180);
+        rodX[0].q = Rotation<3,double>(axis, M_PI*angle/180);
     
-    rodFactory.create(complex.rods_["rod"].dirichletValues_,
-                      RigidBodyMotion<3>(FieldVector<double,3>(0), Rotation<3,double>::identity()));
-    complex.rods_["rod"].dirichletValues_.back() = RigidBodyMotion<3>(parameterSet.get("dirichletValue", rodRestEndPoint[1]),
+        complex.rods_["rod"].dirichletValues_[0] = RigidBodyMotion<3>(parameterSet.get("dirichletValue0", rodRestEndPoint[0]),
                                                                    Rotation<3,double>(axis, M_PI*angle/180));
-    BitSetVector<1> rodDNodes(complex.rods_["rod"].dirichletValues_.size(), false);
-    rodDNodes.back() = true;
+        rodDNodes[0] = true;
+        
+    }
+
+    if (parameterSet.hasKey("dirichletValue1")) {
+        
+        rodX.back().r = parameterSet.get("dirichletValue1", rodRestEndPoint[1]);
+
+        FieldVector<double,3> axis = parameterSet.get("dirichletAxis1", FieldVector<double,3>(0));
+        double angle = parameterSet.get("dirichletAngle1", double(0));
+
+        rodX.back().q = Rotation<3,double>(axis, M_PI*angle/180);
+    
+        complex.rods_["rod"].dirichletValues_.back() = RigidBodyMotion<3>(parameterSet.get("dirichletValue1", rodRestEndPoint[1]),
+                                                                   Rotation<3,double>(axis, M_PI*angle/180));
+        rodDNodes.back() = true;
+
+    } 
+
     complex.rods_["rod"].dirichletBoundary_.setup(*complex.rods_["rod"].grid_,rodDNodes);
 
     // Backup initial rod iterate for later reference