diff --git a/SAS/XML_generator/src/xmlgen.py b/SAS/XML_generator/src/xmlgen.py
index 04884462d4fee930f8b89c73b78ee0d7a1d793c5..c696085d6e2784a18fc57a198892a5974b32b769 100755
--- a/SAS/XML_generator/src/xmlgen.py
+++ b/SAS/XML_generator/src/xmlgen.py
@@ -2,7 +2,7 @@
 
 # XML generator prototype
 
-VERSION = "2.15.0"
+VERSION = "2.16.1"
     
 import sys, getopt, time
 from xml.sax.saxutils import escape as XMLescape
@@ -259,7 +259,7 @@ def processingCluster(cluster, number_of_tasks=244):
 
   CEP4 = r"""  <processingCluster>
                     <name>CEP4</name>
-                    <partition>/data</partition>
+                    <partition>/data/projects/</partition>
                     <numberOfTasks>%i</numberOfTasks>
                     <minRAMPerTask unit="byte">1000000000</minRAMPerTask>
                     <minScratchPerTask unit="byte">100000000</minScratchPerTask>    
@@ -281,7 +281,7 @@ def dataProductCluster(cluster):
                     </storageCluster>"""
   CEP4 = r"""<storageCluster>
                       <name>CEP4</name>
-                      <partition>/data</partition>
+                      <partition>/data/projects/</partition>
                     </storageCluster>"""
 
   if cluster == "CEP4":
@@ -1060,16 +1060,25 @@ def readImagingBBS(value):
     imagingBBS[2] = toBool(imagingBBS[2])
   return imagingBBS
 
+def checkDemixMultiples(avg_freq_step, avg_time_step, demix_freq_step, demix_time_step, name):
+  try:
+    if avg_freq_step and demix_freq_step:
+      if int(demix_freq_step) % int(avg_freq_step) <> 0:
+        raise GenException("demixFreqStep (%s) should be integer multiple of averagingFreqStep (%s) for %s" % (demix_freq_step, avg_freq_step, name))
+    if avg_time_step and demix_time_step:
+      if int(demix_time_step) % int(avg_time_step) <> 0:
+        raise GenException("demixTimeStep (%s) should be integer multiple of averagingTimeStep (%s) for %s" % (demix_time_step, avg_time_step, name))
+  except:
+    raise GenException("I can't read the Demix values for %s" % name)
+
 def readGlobalDemix(value):
   globalDemix = ['','','','','','','']
   if value:
     valList = value.split(';')
     for i in range(0,len(valList)):
       globalDemix[i] = valList[i]
-    if (globalDemix[0] != '') and (globalDemix[2] != ''):
-      if int(globalDemix[2]) % int(globalDemix[0]) <> 0: #TODO try ?
-        raise GenException("demixFreqStep (" + globalDemix[2] + ") should be integer multiple of averagingFreqStep (" + globalDemix[0] + ") for globalDemix")
-      globalDemix[6] = toBool(globalDemix[6]) # convert ignoreTarget to bool
+    checkDemixMultiples(globalDemix[0], globalDemix[1], globalDemix[2], globalDemix[3], "globalDemix")
+    globalDemix[6] = toBool(globalDemix[6]) # convert ignoreTarget to bool
   return globalDemix
 
 def readGlobalPulsar(value):
@@ -1199,7 +1208,7 @@ def readCalibratorBeam(startLine, lines, globalSubbands, globalTABrings, globalB
       calibratorDemix = []
       for pipeline in pipelines:
         if pipeline.startswith("BBS"):
-          calibratorBBS.append(BBSDefault)
+          calibratorBBS.append(BBSDefault[:]) # [:] is needed to make a deep copy
           calBBS = readExtraParms("BBS", [pipeline])
           if len(calBBS) > 0:
             for i in range(0,len(calBBS)):
@@ -1211,14 +1220,12 @@ def readCalibratorBeam(startLine, lines, globalSubbands, globalTABrings, globalB
               calibratorBBS[-1][i] = globalBBS[i]
       
         if pipeline.startswith("Demix"):
-          calibratorDemix.append(DemixDefault)
+          calibratorDemix.append(DemixDefault[:]) # [:] is needed to make a deep copy
           calDemix = readExtraParms("Demix", [pipeline])
           if len(calDemix) > 0:
             for i in range(0,len(calDemix)):
               calibratorDemix[-1][i] = calDemix[i]
-            if (calibratorDemix[-1][0] != '') and (calibratorDemix[-1][2] != ''):
-              if int(calibratorDemix[-1][2]) % int(calibratorDemix[-1][0]) <> 0:
-                raise GenException("demixFreqStep (" + calibratorDemix[-1][2] + ") should be integer multiple of averagingFreqStep (" + calibratorDemix[-1][0] + ") for calibrator beam pipeline")
+            checkDemixMultiples(calibratorDemix[-1][0], calibratorDemix[-1][1], calibratorDemix[-1][2], calibratorDemix[-1][3], "calibratorDemix")
             calibratorDemix[-1][6] = toBool(calibratorDemix[-1][6])
           elif globalDemix != []:
               printInfo('Using global demix settings for Calibrator beam pipeline')
@@ -1325,26 +1332,25 @@ def readTargetBeams(startLine, lines, globalSubbands, globalBBS, globalDemix, gl
       if targetBeams[nr_beams][7]: # pipeline created?
         for pipeline in pipelines:
           if pipeline.startswith("BBS"):
-            targetBBS[nr_beams].append(BBSDefault)
+            targetBBS[nr_beams].append(BBSDefault[:]) # [:] is needed to make a deep copy
             tarBBS = readExtraParms("BBS", [pipeline])
             for i in range(0, len(tarBBS)):
               targetBBS[nr_beams][-1][i] = tarBBS[i]
             targetBBS[nr_beams][-1][3] = toBool(targetBBS[nr_beams][-1][3])
           
           if pipeline.startswith("Demix"):
-            targetDemix[nr_beams].append(DemixDefault)
+            targetDemix[nr_beams].append(DemixDefault[:]) # [:] is needed to make a deep copy
             tarDemix = readExtraParms("Demix", [pipeline])
             if len(tarDemix) >= 4:
               for i in range(0,len(tarDemix)):
                 targetDemix[nr_beams][-1][i] = tarDemix[i]
-              if int(targetDemix[nr_beams][-1][2]) % int(targetDemix[nr_beams][-1][0]) <> 0:
-                raise GenException("demixFreqStep (" + targetDemix[nr_beams][-1][2] + ") should be integer multiple of averagingFreqStep (" + targetDemix[nr_beams][-1][0] + "), target beam pipeline:" + str(nr_beams))
+              checkDemixMultiples(targetDemix[nr_beams][-1][0], targetDemix[nr_beams][-1][1], targetDemix[nr_beams][-1][2], targetDemix[nr_beams][-1][3], "targetDemix[%i]" % nr_beams)
               targetDemix[nr_beams][-1][6] = toBool(targetDemix[nr_beams][-1][6]) # convert ignoreTarget to bool
             elif len(tarDemix) > 0:
               raise GenException("Demixing parameters should at least have the first four averaging/demixing steps (block %s, targetBeam %s)" % (blockNr, nr_beams))
       
           if pipeline.startswith("Pulsar"):
-            targetPulsar[nr_beams].append(PulsarDefault)
+            targetPulsar[nr_beams].append(PulsarDefault[:]) # [:] is needed to make a deep copy
             tarPulsar = readExtraParms("Pulsar", [pipeline])
             if len(tarPulsar) > 0:
               for i in range(0,len(tarPulsar)):
diff --git a/SAS/XML_generator/test/test_regression.in_data/xml/MSSS_20151207_testmultipipe.xml b/SAS/XML_generator/test/test_regression.in_data/xml/MSSS_20151207_testmultipipe.xml
index 7cadb0bf5f1686b48413067329225961acd4b904..915330590faa4a5e71061802c255ea8a6857d3c9 100644
--- a/SAS/XML_generator/test/test_regression.in_data/xml/MSSS_20151207_testmultipipe.xml
+++ b/SAS/XML_generator/test/test_regression.in_data/xml/MSSS_20151207_testmultipipe.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <lofar:project xmlns:lofar="http://www.astron.nl/MoM2-Lofar" xmlns:mom2="http://www.astron.nl/MoM2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.astron.nl/MoM2-Lofar http://lofar.astron.nl:8080/mom3/schemas/LofarMoM2.xsd http://www.astron.nl/MoM2 http://lofar.astron.nl:8080/mom3/schemas/MoM2.xsd ">
-  <version>2.15.0</version>
-  <template version="2.15.0" author="Alwin de Jong,Adriaan Renting" changedBy="Adriaan Renting">
-  <description>XML Template generator version 2.15.0</description>
+  <version>2.16.1</version>
+  <template version="2.16.1" author="Alwin de Jong,Adriaan Renting" changedBy="Adriaan Renting">
+  <description>XML Template generator version 2.16.1</description>
   </template>
   <name>LOFAROBS</name>
   <children>
@@ -413,8 +413,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
@@ -489,8 +489,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
@@ -565,8 +565,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
@@ -641,8 +641,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
@@ -717,8 +717,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
@@ -793,8 +793,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
@@ -869,8 +869,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
@@ -945,8 +945,8 @@
                   <flaggingStrategy>LBAdefault</flaggingStrategy>
                   <duration>5000</duration>
                   <demixingParameters>
-                    <averagingFreqStep>64</averagingFreqStep>
-                    <averagingTimeStep>5</averagingTimeStep>
+                    <averagingFreqStep>8</averagingFreqStep>
+                    <averagingTimeStep>2</averagingTimeStep>
                     <demixFreqStep>64</demixFreqStep>
                     <demixTimeStep>10</demixTimeStep>
                     <demixAlways>[CygA,CasA]</demixAlways>
diff --git a/SAS/XML_generator/test/test_regression.in_data/xml/test_input_cep4.xml b/SAS/XML_generator/test/test_regression.in_data/xml/test_input_cep4.xml
index a3a0f4589de04f3e540a0911be7deb4b0f8e5006..7d936dc182ede92a12d822df3cbbb9befdc65db1 100644
--- a/SAS/XML_generator/test/test_regression.in_data/xml/test_input_cep4.xml
+++ b/SAS/XML_generator/test/test_regression.in_data/xml/test_input_cep4.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <lofar:project xmlns:lofar="http://www.astron.nl/MoM2-Lofar" xmlns:mom2="http://www.astron.nl/MoM2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.astron.nl/MoM2-Lofar http://lofar.astron.nl:8080/mom3/schemas/LofarMoM2.xsd http://www.astron.nl/MoM2 http://lofar.astron.nl:8080/mom3/schemas/MoM2.xsd ">
-  <version>2.15.0</version>
-  <template version="2.15.0" author="Alwin de Jong,Adriaan Renting" changedBy="Adriaan Renting">
-  <description>XML Template generator version 2.15.0</description>
+  <version>2.16.1</version>
+  <template version="2.16.1" author="Alwin de Jong,Adriaan Renting" changedBy="Adriaan Renting">
+  <description>XML Template generator version 2.16.1</description>
   </template>
   <name>test_lofar</name>
   <children>
@@ -103,7 +103,7 @@
                     <status>no_data</status>
                     <storageCluster>
                       <name>CEP4</name>
-                      <partition>/data</partition>
+                      <partition>/data/projects/</partition>
                     </storageCluster>
                     </lofar:uvDataProduct>
                   </item>
@@ -114,7 +114,7 @@
                     <status>no_data</status>
                     <storageCluster>
                       <name>CEP4</name>
-                      <partition>/data</partition>
+                      <partition>/data/projects/</partition>
                     </storageCluster>
                     </lofar:bfDataProduct>
                   </item>
@@ -132,7 +132,7 @@
                 <description>Crab test/1.0/PP (Pulsar Pipeline)</description>
   <processingCluster>
                     <name>CEP4</name>
-                    <partition>/data</partition>
+                    <partition>/data/projects/</partition>
                     <numberOfTasks>244</numberOfTasks>
                     <minRAMPerTask unit="byte">1000000000</minRAMPerTask>
                     <minScratchPerTask unit="byte">100000000</minScratchPerTask>    
@@ -180,7 +180,7 @@
                       <status>no_data</status>
                       <storageCluster>
                       <name>CEP4</name>
-                      <partition>/data</partition>
+                      <partition>/data/projects/</partition>
                     </storageCluster>
                     </lofar:pulsarDataProduct>
                   </item>
@@ -278,7 +278,7 @@
                     <status>no_data</status>
                     <storageCluster>
                       <name>CEP4</name>
-                      <partition>/data</partition>
+                      <partition>/data/projects/</partition>
                     </storageCluster>
                     </lofar:uvDataProduct>
                   </item>
@@ -289,7 +289,7 @@
                     <status>no_data</status>
                     <storageCluster>
                       <name>CEP4</name>
-                      <partition>/data</partition>
+                      <partition>/data/projects/</partition>
                     </storageCluster>
                     </lofar:bfDataProduct>
                   </item>
@@ -307,7 +307,7 @@
                 <description>Crab test/2.0/PP (Pulsar Pipeline)</description>
   <processingCluster>
                     <name>CEP4</name>
-                    <partition>/data</partition>
+                    <partition>/data/projects/</partition>
                     <numberOfTasks>244</numberOfTasks>
                     <minRAMPerTask unit="byte">1000000000</minRAMPerTask>
                     <minScratchPerTask unit="byte">100000000</minScratchPerTask>    
@@ -355,7 +355,7 @@
                       <status>no_data</status>
                       <storageCluster>
                       <name>CEP4</name>
-                      <partition>/data</partition>
+                      <partition>/data/projects/</partition>
                     </storageCluster>
                     </lofar:pulsarDataProduct>
                   </item>