diff --git a/LCS/pyparameterset/src/__init__.py b/LCS/pyparameterset/src/__init__.py
index 51bac88f1dbba69620a2e76a1c9e9c9e735b8d93..7c711b50002c3a0453931c6d7ef42cac0d851b4d 100755
--- a/LCS/pyparameterset/src/__init__.py
+++ b/LCS/pyparameterset/src/__init__.py
@@ -51,7 +51,7 @@ class parameterset(PyParameterSet):
     The Python interface to ParameterSet
     """
 
-    def __init__(self, filename=None, caseInsensitive=False):
+    def __init__(self, filename=None, caseInsensitive=False, _copyObj=False):
         """Create a parameterset object.
 
         filename
@@ -61,10 +61,14 @@ class parameterset(PyParameterSet):
           True = parameter names are case insensitive
 
         """
-        if filename==None:
-            PyParameterSet.__init__ (self, caseInsensitive);
+        if _copyObj == True:
+            # Copy constructor
+            PyParameterSet.__init__ (self, filename)
+        elif filename==None:
+            PyParameterSet.__init__ (self, caseInsensitive, 0, 0);
         elif isinstance(filename, bool):
-            PyParameterSet.__init__ (self, filename);
+            # Here filename argument means caseInsensitive
+            PyParameterSet.__init__ (self, filename, 0, 0);
         else:
             PyParameterSet.__init__ (self, filename, caseInsensitive);
 
@@ -76,6 +80,11 @@ class parameterset(PyParameterSet):
         """Get the parametervalue object of a parameter."""
         return self._get (key)
 
+    def makeSubset (self, prefix):
+        """Get a subset of all keys starting with the given prefix"""
+        ps = self._makeSubset (prefix)
+        return parameterset (ps, _copyObj=True)
+
     def keys(self):
         """Get a sorted list of all parameter names."""
         return self.keywords()
diff --git a/LCS/pyparameterset/src/pyparameterset.cc b/LCS/pyparameterset/src/pyparameterset.cc
index 998dc9d8476b49123f7d8bcdf8751d936419c08c..bd583c9a3731e2030bb4a132c41547f0bf241964 100644
--- a/LCS/pyparameterset/src/pyparameterset.cc
+++ b/LCS/pyparameterset/src/pyparameterset.cc
@@ -39,7 +39,7 @@ namespace LOFAR {
     PyParameterSet()
       : ParameterSet()
     {}
-    PyParameterSet (bool caseInsensitive)
+    PyParameterSet (bool caseInsensitive, int, int)
       : ParameterSet (caseInsensitive)
     {}
     PyParameterSet (const string& fileName, bool caseInsensitive)
@@ -164,7 +164,8 @@ namespace LOFAR {
   void pyparameterset()
   {
     class_<PyParameterSet> ("PyParameterSet")
-      .def (init<bool>())
+      .def (init<PyParameterSet>())
+      .def (init<bool, int, int>())
       .def (init<std::string, bool>())
       .def ("version", &PyParameterSet::version,
             (boost::python::arg("type")="other"),
@@ -174,7 +175,7 @@ namespace LOFAR {
       .def ("__len__", &ParameterSet::size,
             "Get the number of parameters.")
       .def ("keywords", &PyParameterSet::keywords)
-      .def ("makeSubset", &PyParameterSet::makeSubset,
+      .def ("_makeSubset", &PyParameterSet::makeSubset,
  	    (boost::python::arg("baseKey"),
              boost::python::arg("prefix")=""),
             "Return a subset as a new parameterset object.\n"
diff --git a/LCS/pyparameterset/test/tpyparameterset.py b/LCS/pyparameterset/test/tpyparameterset.py
index 0ed5eace3a2d864bb6235ce5cf44ed8e3b02a0a5..85ad29925b9797ce25bda439071e1c56cadf2597 100644
--- a/LCS/pyparameterset/test/tpyparameterset.py
+++ b/LCS/pyparameterset/test/tpyparameterset.py
@@ -79,3 +79,12 @@ ps.add ("vecexp", "[1..3,5..10]")
 ps.add ("vecnest", "[[1..3,5*10],[5..10]]")
 print ps.keys()
 checkps (ps)
+
+# Check if a subset can be made and its name can be read.
+pss = ps.makeSubset('a.')
+print pss.keys()
+print 'b.c =', pss.getString ('b.c')
+print pss.makeSubset('b.').keys()
+print pss.makeSubset('b.').size()
+print pss.makeSubset('cc').keys()    # should be empty
+print len(pss.makeSubset('cc'))
diff --git a/LCS/pyparameterset/test/tpyparameterset.stdout b/LCS/pyparameterset/test/tpyparameterset.stdout
index 9cab053c842c5daf88929437c6f00f5e28ff29d0..9f0374a92607ca4f10b93901dba4a2c71b85a4b5 100644
--- a/LCS/pyparameterset/test/tpyparameterset.stdout
+++ b/LCS/pyparameterset/test/tpyparameterset.stdout
@@ -78,3 +78,9 @@ True
 [1..3,5*10]
 [1, 2, 3, 10, 10, 10, 10, 10]
 [5, 6, 7, 8, 9, 10]
+['b', 'b.bool', 'b.c', 'b.double', 'b.lange_naam']
+b.c = 5
+['bool', 'c', 'double', 'lange_naam']
+4
+[]
+0