diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py b/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py
index 324cb8c9d4c6ffe5fd29d4d07fa356a2bf619f65..1c2be8f8805efeccff64e0c95ff104b8c21e591f 100644
--- a/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py
+++ b/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py
@@ -18,6 +18,7 @@ class CS1_Parset(LOFAR_Parset.Parset):
 	self.bl2subbands = list()
 	self.sb2index = list()
 	self.nrSubbands = 0
+	self.doObservation =False
 
     def setClock(self, clock):
         self.clock = clock
@@ -165,26 +166,27 @@ class CS1_Parset(LOFAR_Parset.Parset):
 	return  result + ']'  	       
 
     def getBeamlet2beams(self):
-        if len(self.bl2beams) == 0:
+        if not self.doObservation:
 	    self.observation()
 	return self.bl2beams
         	        
     def getBeamlet2subbands(self):
-        if len(self.bl2subbands) == 0:
+        if not self.doObservation:
 	    self.observation()
 	return self.bl2subbands    
 
     def getSubband2Index(self):
-        if len(self.sb2index) == 0:
+        if not self.doObservation:
 	    self.observation()
 	return self.sb2index    
 
     def getNrSubbands(self):
-        if self.nrSubbands == 0:
+        if not self.doObservation:
 	    self.observation()
 	return self.nrSubbands   
 	
     def observation(self):
+        self.doObservation = True
         bl2beamsArray = zeros(4*54)
 	bl2subbandsArray = zeros(4*54)
 	sb2indexArray = list()
@@ -203,6 +205,10 @@ class CS1_Parset(LOFAR_Parset.Parset):
 	    self.__setitem__('x',blString);
 	    beamlets = self.getInt32Vector('x')
 	    
+	    if len(subbands) != len(beamlets):
+	        print 'NrBeamlets(%d)' % len(beamlets) + ' and nrSubbands(%d)' % len(subbands) + ' are not equal'
+	        sys.exit(0)
+		
 	    for b in range(0, len(beamlets)):
 	        # finally update beamlet 2 beam mapping.
 		if bl2beamsArray[beamlets[b]] != 0:
@@ -250,6 +256,23 @@ class CS1_Parset(LOFAR_Parset.Parset):
 	print 'filterselection value "' + filterName + '" not recognized, using LBL_10_80'
 	return 1
     
+    def checkCS1Parset(self):
+        if not self.isDefined('Observation.Beam[1].beamletList') and self.getInt32('Observation.nrBeams') == 1:
+	    sbString = self.expandedArrayString(self.getString('Observation.Beam[1].subbandList'))
+	    self.__setitem__('x',sbString);
+	    subbands = self.getInt32Vector('x')
+	    self['Observation.Beam[1].beamletList'] = '[0..%s]' % str(len(subbands) - 1)
+		    
+	b2b = self.getBeamlet2beams()
+        nBeamlets = 0
+	for i in range(0,53):
+	    if b2b[i] != 0:
+	        nBeamlets += 1
+
+	if nBeamlets > self.getInt32('OLAP.nrSubbandsPerFrame'):
+	    print 'NrBeamlets(%d)' % nBeamlets + ' > OLAP.nrSubbandsPerFrame(%d)' %  self.getInt32('OLAP.nrSubbandsPerFrame')
+	    sys.exit(0)
+	
     def updateSBValues(self):
         if self.clock == '160MHz':
             subbandwidth = 156250
diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py b/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py
index b5dc3f2a66f0dafe0ef2e59fb46413489ae7d5f3..49344450512f7ab23725dd2d4327b3678eaa12a9 100755
--- a/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py
+++ b/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py
@@ -111,6 +111,8 @@ if __name__ == '__main__':
 
     parset.readFromFile(options.parset)
 
+    parset.checkCS1Parset()
+
     parset.setClock(options.clock)
     parset.setIntegrationTime(options.integrationtime) 
     parset.setPartition(options.partition)