diff --git a/dirneucoupling.cc b/dirneucoupling.cc
index e94e1fc4c30f0857a9552797284ee573454371f6..55f17069e21c8fa7d8e191ae2f6fc96ea10afdf1 100644
--- a/dirneucoupling.cc
+++ b/dirneucoupling.cc
@@ -10,7 +10,8 @@
 #include <dune/grid/io/file/amirameshwriter.hh>
 
 #include <dune/common/bitsetvector.hh>
-#include <dune/common/configparser.hh>
+#include <dune/common/parametertree.hh>
+#include <dune/common/parametertreeparser.hh>
 
 #include <dune/solvers/iterationsteps/multigridstep.hh>
 #include <dune/solvers/solvers/loopsolver.hh>
@@ -61,11 +62,11 @@ int main (int argc, char *argv[]) try
     typedef BlockVector<FieldVector<double, dim> >       VectorType;
 
     // parse data file
-    ConfigParser parameterSet;
+    ParameterTree parameterSet;
     if (argc==2)
-        parameterSet.parseFile(argv[1]);
+        ParameterTreeParser::readINITree(argv[1], parameterSet);
     else
-        parameterSet.parseFile("dirneucoupling.parset");
+        ParameterTreeParser::readINITree("dirneucoupling.parset", parameterSet);
 
     // read solver settings
     const int numLevels            = parameterSet.get<int>("numLevels");
diff --git a/rod-eoc.cc b/rod-eoc.cc
index 8ac8ab4ed89105929534461ab0bb1f7dc4be5dd0..c04f63d28dab5fcdd3cbe86c2374de2e36a8af77 100644
--- a/rod-eoc.cc
+++ b/rod-eoc.cc
@@ -1,7 +1,8 @@
 #include <config.h>
 
 #include <dune/common/bitsetvector.hh>
-#include <dune/common/configparser.hh>
+#include <dune/common/parametertree.hh>
+#include <dune/common/parametertreeparser.hh>
 
 #include <dune/grid/onedgrid.hh>
 
@@ -37,7 +38,7 @@ void solve (const GridType& grid,
             SolutionType& x, 
             int numLevels,
             const TargetSpace& dirichletValue,
-            ConfigParser& parameters)
+            const ParameterTree& parameters)
 {
     // read solver setting
     const double innerTolerance           = parameters.get<double>("innerTolerance");
@@ -129,11 +130,11 @@ void solve (const GridType& grid,
 int main (int argc, char *argv[]) try
 {
     // parse data file
-    ConfigParser parameterSet;
+    ParameterTree parameterSet;
     if (argc==2)
-        parameterSet.parseFile(argv[1]);
+        ParameterTreeParser::readINITree(argv[1], parameterSet);
     else
-        parameterSet.parseFile("rod-eoc.parset");
+        ParameterTreeParser::readINITree("rod-eoc.parset", parameterSet);
 
     // read solver settings
     const int numLevels        = parameterSet.get<int>("numLevels");
diff --git a/rod3d.cc b/rod3d.cc
index e525f784509744cc088eb5964c9a192c29ba6b4b..617319a87dca17a3a7148414ea4565c00213d4d4 100644
--- a/rod3d.cc
+++ b/rod3d.cc
@@ -1,7 +1,8 @@
 #include <config.h>
 
 #include <dune/common/bitsetvector.hh>
-#include <dune/common/configparser.hh>
+#include <dune/common/parametertree.hh>
+#include <dune/common/parametertreeparser.hh>
 
 #include <dune/grid/onedgrid.hh>
 
@@ -30,11 +31,11 @@ int main (int argc, char *argv[]) try
     typedef std::vector<RigidBodyMotion<3> > SolutionType;
 
     // parse data file
-    ConfigParser parameterSet;
+    ParameterTree parameterSet;
     if (argc==2)
-        parameterSet.parseFile(argv[1]);
+        ParameterTreeParser::readINITree(argv[1], parameterSet);
     else
-        parameterSet.parseFile("rod3d.parset");
+        ParameterTreeParser::readINITree("rod3d.parset", parameterSet);
 
     // read solver settings
     const int numLevels        = parameterSet.get<int>("numLevels");
diff --git a/rodobstacle.cc b/rodobstacle.cc
index 2a00b0facfe55f7c081a39469c7e0916b1637d99..a702030629305f1485c0e0fa3d5e110bd8a2b33f 100644
--- a/rodobstacle.cc
+++ b/rodobstacle.cc
@@ -1,7 +1,8 @@
 #include <config.h>
 
 #include <dune/common/bitsetvector.hh>
-#include <dune/common/configparser.hh>
+#include <dune/common/parametertree.hh>
+#include <dune/common/parametertreeparser.hh>
 
 #include <dune/grid/onedgrid.hh>
 
@@ -73,8 +74,8 @@ int main (int argc, char *argv[]) try
     typedef std::vector<RigidBodyMotion<2> >                       SolutionType;
 
     // parse data file
-    ConfigParser parameterSet;
-    parameterSet.parseFile("rodobstacle.parset");
+    ParameterTree parameterSet;
+    ParameterTreeParser::readINITree("rodobstacle.parset", parameterSet);
 
     // read solver settings
     const int minLevel         = parameterSet.get<int>("minLevel");