diff --git a/CEP/BB/BBS3/test/BB3C343.input1 b/CEP/BB/BBS3/test/BB3C343.input1
new file mode 100644
index 0000000000000000000000000000000000000000..4a0419f3c391cc319cadc618cf8fa693b56ee7cf
--- /dev/null
+++ b/CEP/BB/BBS3/test/BB3C343.input1
@@ -0,0 +1,38 @@
+# 3C343 test with:
+#   /data/PSS3/diepen/BBS2/3C343/10008336_p1.MS
+#   nrsrc=2
+#   nrstat=14
+#   solve for StokesI as function of freq
+#   model=""
+#   time domain is all times
+#   solve for entire time domain
+
+nrPrediffers=1   # Number of Prediffers
+
+CTRLparams.nrStrategies=1                  # Number of Strategy Controllers
+CTRLparams.SC1params.writeParms=T          # Does the Controller write the final solution in parmeter table?
+CTRLparams.SC1params.strategy="Simple"     # Strategy type
+CTRLparams.SC1params.maxNrIterations=3     # Maximum number of iterations per time interval
+CTRLparams.SC1params.fitCriterion=-1       # Iterate until this absolute value is obtained for the fit (-1 means no fit criterion, iterate 'maxNrIterations' times)
+CTRLparams.SC1params.controlParmUpdate=F   # Does the controller update the parameters?
+CTRLparams.SC1params.solvableParams=["StokesI.*"]
+CTRLparams.SC1params.timeInterval=1.0e12   # Time interval 
+CTRLparams.SC1params.startTime=-1          # Start time (-1 means take beginning of measurement set) 
+CTRLparams.SC1params.endTime=-1            # End time (-1 means take end of measurement set)
+CTRLparams.SC1params.antennas=[0,1,2,3,4,5,6,7,8,9,10,11,12,13]
+CTRLparams.SC1params.startFreq=1170703125  # Start frequency
+CTRLparams.SC1params.freqLength=8750000    # Size of frequency interval
+CTRLparams.SC1params.sources=[]         # Solvable source numbers (0 based)
+CTRLparams.SC1params.modelType=""          # Model type
+CTRLparams.SC1params.calcUVW=F             # Calculate UVW coordinates?
+CTRLparams.SC1params.useAutoCorr=F         # Use auto correlations
+CTRLparams.SC1params.correlations=[0,3]    # Only use XX and YY correlations
+CTRLparams.SC1params.useSVD=F              # Use Singular Value Decomposition in solve?
+CTRLparams.SC1params.MSDBparams.MSName="10008336_p1.MS"     # Name of the Measurement Set
+CTRLparams.SC1params.MSDBparams.DBHost="localhost"          # Parameter database host name
+CTRLparams.SC1params.MSDBparams.DBType="aips"               # Parameter database type
+CTRLparams.SC1params.MSDBparams.DBPwd=""                    # Parameter database password
+CTRLparams.SC1params.MSDBparams.DBMasterPort=13157          # port on which the master db is listening
+CTRLparams.SC1params.MSDBparams.meqTableName="10008336"     # Meq model table name *       
+CTRLparams.SC1params.MSDBparams.skyTableName="10008336_gsm" # Sky model table name *
+CTRLparams.SC1params.MSDBparams.sourceGroups = ["srcs=[1,2]"]
diff --git a/CEP/BB/BBS3/test/BB3C343.input2 b/CEP/BB/BBS3/test/BB3C343.input2
new file mode 100644
index 0000000000000000000000000000000000000000..33543c89f4cee5bc851dd7189beb4bfb2496c76b
--- /dev/null
+++ b/CEP/BB/BBS3/test/BB3C343.input2
@@ -0,0 +1,39 @@
+# 3C343 test with:
+#   /data/PSS3/diepen/BBS2/3C343/10008336_p1.MS
+#   use middle 56 channels
+#   nrsrc=2
+#   nrstat=14
+#   solve for phase
+#   model="AP"
+#   solve for steps in time
+
+nrPrediffers=1   # Number of Prediffers
+
+CTRLparams.nrStrategies=1                  # Number of Strategy Controllers
+CTRLparams.SC1params.writeParms=T          # Does the Controller write the final solution in parmeter table?
+CTRLparams.SC1params.strategy="Simple"     # Strategy type
+CTRLparams.SC1params.maxNrIterations=3     # Maximum number of iterations per time interval
+CTRLparams.SC1params.fitCriterion=-1       # Iterate until this absolute value is obtained for the fit (-1 means no fit criterion, iterate 'maxNrIterations' times)
+CTRLparams.SC1params.controlParmUpdate=F   # Does the controller update the parameters?
+CTRLparams.SC1params.solvableParams=["EJ11.phase.*","EJ22.phase.*"]
+CTRLparams.SC1params.excludeParams=["EJ11.phase.SR1.SG1","EJ11.phase.SR1","EJ22.phase.SR1.SG1","EJ22.phase.SR1"]
+CTRLparams.SC1params.timeInterval=60       # Time interval 
+CTRLparams.SC1params.startTime=4472025720  # Start time (-1 means take beginning of measurement set) 
+CTRLparams.SC1params.endTime=4472068820    # End time (-1 means take end of measurement set)
+CTRLparams.SC1params.antennas=[0,1,2,3,4,5,6,7,8,9,10,11,12,13]
+CTRLparams.SC1params.startFreq=1170703125  # Start frequency
+CTRLparams.SC1params.freqLength=8750000    # Size of frequency interval
+CTRLparams.SC1params.sources=[]            # Solvable source numbers (0 based)
+CTRLparams.SC1params.modelType="AP"        # Model type
+CTRLparams.SC1params.calcUVW=F             # Calculate UVW coordinates?
+CTRLparams.SC1params.useAutoCorr=F         # Use auto correlations
+CTRLparams.SC1params.correlations=[0,3]    # Only use XX and YY correlations
+CTRLparams.SC1params.useSVD=F              # Use Singular Value Decomposition in solve?
+CTRLparams.SC1params.MSDBparams.MSName="10008336_p1.MS"     # Name of the Measurement Set
+CTRLparams.SC1params.MSDBparams.DBHost="localhost"          # Parameter database host name
+CTRLparams.SC1params.MSDBparams.DBType="aips"               # Parameter database type
+CTRLparams.SC1params.MSDBparams.DBPwd=""                    # Parameter database password
+CTRLparams.SC1params.MSDBparams.DBMasterPort=13157          # port on which the master db is listening
+CTRLparams.SC1params.MSDBparams.meqTableName="10008336"     # Meq model table name *       
+CTRLparams.SC1params.MSDBparams.skyTableName="10008336_gsm" # Sky model table name *
+CTRLparams.SC1params.MSDBparams.sourceGroups = ["srcs=[1,2]"]
diff --git a/CEP/BB/BBS3/test/run.BB3C343 b/CEP/BB/BBS3/test/run.BB3C343
new file mode 100755
index 0000000000000000000000000000000000000000..ab594ac53aa3f560514ab56d38227b4e7e869967
--- /dev/null
+++ b/CEP/BB/BBS3/test/run.BB3C343
@@ -0,0 +1,127 @@
+#!/bin/sh
+# this script must be called with nriter and usernm
+# This script does the same as the run.3C343 script. However,
+# this script uses the whole BBS3 system, instead of just
+# the Prediffer and Solver class.
+# It uses the input parameters sets in files: BB3C343.input1 
+# and BB3C343.input2. 
+
+if [ "$#" != "2" ]; then
+ echo "run as:   run.3C343 usernm dbtype"
+ exit 1
+fi
+
+usernm=$1
+dbtype=$2
+
+# Define functions to create the parm tables.
+beginParmdbInputFile () {
+  rm -f fill.parmdb
+  add2file "create $*"
+  add2file "connect $*"
+  add2file "clear"
+}
+add2file () {
+  echo $* >> fill.parmdb
+}
+applyfile () {
+  add2file  "quit" 
+  ./parmdb < fill.parmdb
+}
+makeMeq () {
+  diff="1e-6" 
+  if [ "$#" -eq "1" ]; then
+    diff=$1 
+  fi
+  add2file  "adddef frot      values=0, diff=${diff}" 
+  add2file  "adddef drot      values=0, diff=${diff}" 
+  add2file  "adddef dell      values=0, diff=${diff}" 
+  add2file  "adddef gain.11   values=1, diff=${diff}" 
+  add2file  "adddef gain.22   values=1, diff=${diff}" 
+  add2file  "adddef EJ11.ampl values=1, diff=${diff}" 
+  add2file  "adddef EJ12.ampl values=0, diff=${diff}" 
+  add2file  "adddef EJ21.ampl values=0, diff=${diff}" 
+  add2file  "adddef EJ22.ampl values=1, diff=${diff}" 
+  add2file  "adddef EJ11.phase values=0, diff=${diff}" 
+  add2file  "adddef EJ12.phase values=0, diff=${diff}" 
+  add2file  "adddef EJ21.phase values=0, diff=${diff}" 
+  add2file  "adddef EJ22.phase values=0, diff=${diff}" 
+}
+makeGsm () {
+  diff="1e-6" 
+  if [ "$#" -eq "1" ]; then
+    diff=$1 
+  fi
+  add2file  "adddef RA.CP1  values=4.356645791155902, srcnr=0, diff=${diff}, diff_rel=F" 
+  add2file  "adddef DEC.CP1 values=1.092208429052697, srcnr=0, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef RA.CP1  values=4.356645, srcnr=0, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef DEC.CP1 values=1.092208, srcnr=0, diff=${diff}, diff_rel=F" 
+  add2file  "adddef StokesI.CP1 values=1.0,     srcnr=0, diff=${diff} " 
+  add2file  "adddef StokesQ.CP1 values=0,       srcnr=0, diff=${diff} " 
+  add2file  "adddef StokesU.CP1 values=0,       srcnr=0, diff=${diff} " 
+  add2file  "adddef StokesV.CP1 values=0,       srcnr=0, diff=${diff} " 
+  add2file  "adddef RA.CP2  values=4.3396003966265599, srcnr=1, diff=${diff}, diff_rel=F" 
+  add2file  "adddef DEC.CP2 values=1.0953677174056471, srcnr=1, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef RA.CP2  values=4.339600, srcnr=1, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef DEC.CP2 values=1.095367, srcnr=1, diff=${diff}, diff_rel=F" 
+  add2file  "adddef StokesI.CP2 values=1.0,     srcnr=1, diff=${diff} " 
+  add2file  "adddef StokesQ.CP2 values=0,       srcnr=1, diff=${diff} " 
+  add2file  "adddef StokesU.CP2 values=0,       srcnr=1, diff=${diff} " 
+  add2file  "adddef StokesV.CP2 values=0,       srcnr=1, diff=${diff} " 
+}
+
+makeGsm2 () {
+  diff="1e-6" 
+  if [ "$#" -eq "1" ]; then
+    diff=$1 
+  fi
+  add2file  "adddef RA.CP1  values=4.356645791155902, srcnr=0, diff=${diff}, diff_rel=F" 
+  add2file  "adddef DEC.CP1 values=1.092208429052697, srcnr=0, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef RA.CP1  values=4.356645, srcnr=0, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef DEC.CP1 values=1.092208, srcnr=0, diff=${diff}, diff_rel=F" 
+  add2file  "adddef StokesI.CP1 nx=2, values=[1.0,0.], srcnr=0, diff=${diff} " 
+  add2file  "adddef StokesQ.CP1 values=0,       srcnr=0, diff=${diff} " 
+  add2file  "adddef StokesU.CP1 values=0,       srcnr=0, diff=${diff} " 
+  add2file  "adddef StokesV.CP1 values=0,       srcnr=0, diff=${diff} " 
+  add2file  "adddef RA.CP2  values=4.3396003966265599, srcnr=1, diff=${diff}, diff_rel=F" 
+  add2file  "adddef DEC.CP2 values=1.0953677174056471, srcnr=1, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef RA.CP2  values=4.339600, srcnr=1, diff=${diff}, diff_rel=F" 
+#  add2file  "adddef DEC.CP2 values=1.095367, srcnr=1, diff=${diff}, diff_rel=F" 
+  add2file  "adddef StokesI.CP2 nx=4, values=[1.0,0.,0.,0.], srcnr=1, diff=${diff} " 
+  add2file  "adddef StokesQ.CP2 values=0,       srcnr=1, diff=${diff} " 
+  add2file  "adddef StokesU.CP2 values=0,       srcnr=1, diff=${diff} " 
+  add2file  "adddef StokesV.CP2 values=0,       srcnr=1, diff=${diff} " 
+}
+
+
+echo "  Generating parm tables ..."
+# use functions to initialize parmtables
+beginParmdbInputFile "dbtype='$dbtype', user='$usernm', tablename='10008336'"
+makeMeq
+applyfile
+
+beginParmdbInputFile "dbtype='$dbtype', user='$usernm', tablename='10008336_gsm'"
+makeGsm2
+applyfile
+
+ln -s /data/PSS3/diepen/BBS2/3C343/10008336_p1.MS
+
+./clearBB
+
+# Solve for StokesI as function of freq.
+time ./BBS3 ../../test/BB3C343.input1 $usernm
+
+# Create a new gsm table.
+beginParmdbInputFile "dbtype='$dbtype', user='$usernm', tablename='10008336_gsm'"
+makeGsm
+applyfile
+
+./clearBB
+
+# Solve for StokesI (and save that).
+time ./BBS3 ../../test/BB3C343.input1 $usernm 
+
+./clearBB
+
+# Solve for phase
+time ./BBS3 ../../test/BB3C343.input2 $usernm
diff --git a/CEP/BB/BBS3/test/t3C343.cc b/CEP/BB/BBS3/test/t3C343.cc
index 98ce4e4c0b7648694cd961c5b8d9d741300e25d4..33dd6334465324b5af879cec30509f6a639775df 100644
--- a/CEP/BB/BBS3/test/t3C343.cc
+++ b/CEP/BB/BBS3/test/t3C343.cc
@@ -108,7 +108,7 @@ void doSolveStep (Prediffer& pre1, const vector<string>& solv,
   while (timeStart < timeLast) {
     // Set a domain. Use middle 56 channels and 2 times per step.
     pre1.setDomain (1.18e9-59.5*156250, 56*156250, timeStart, timeStep);
-    
+
     // Get the ParmData from the Prediffer and send it to the solver.
     Solver solver;
     solver.initSolvableParmData (1);