diff --git a/CEP/DP3/DPPP/include/DPPP/StefCal.h b/CEP/DP3/DPPP/include/DPPP/StefCal.h
index 234b0524d6fb875cd4680287fc4a8d536902243d..b8a7fa440e3bc431b3fe653cfc5366d1b8c7e9ea 100644
--- a/CEP/DP3/DPPP/include/DPPP/StefCal.h
+++ b/CEP/DP3/DPPP/include/DPPP/StefCal.h
@@ -52,6 +52,7 @@ namespace LOFAR {
       casa::Matrix<casa::DComplex> g; // Station, correlation
       casa::Array<casa::DComplex> vis;
       casa::Array<casa::DComplex> mvis;
+      uint savedNCr; // number of correlations stored (1,2 or 4)
 
     private:
       casa::Matrix<casa::DComplex> gx;
@@ -61,7 +62,7 @@ namespace LOFAR {
       casa::Matrix<casa::DComplex> z;
 
       uint nSt; // number of stations
-      uint nCr; // number of correlations
+      uint nCr; // number of correlations (1 or 4)
       uint nUn; // number of unknowns
       uint nSp; // number that is two for scalarphase, one else
       uint _solInt;
diff --git a/CEP/DP3/DPPP/src/GainCal.cc b/CEP/DP3/DPPP/src/GainCal.cc
index 42f3734ac253bf84ba6cbbdcc4c9ab2acf2f7c06..c1f8925d662a31ba1295522b28d4aa2b7b77cbd9 100644
--- a/CEP/DP3/DPPP/src/GainCal.cc
+++ b/CEP/DP3/DPPP/src/GainCal.cc
@@ -411,12 +411,12 @@ namespace LOFAR {
 
       // Stefcal terminated (either by maxiter or by converging)
       // Let's save G...
-      Cube<DComplex> allg(info().antennaNames().size(), nCr, itsNFreqCells);
+      Cube<DComplex> allg(info().antennaNames().size(), iS[0].savedNCr, itsNFreqCells);
       for (uint freqCell=0; freqCell<itsNFreqCells; ++freqCell) {
         //cout<<endl<<"freqCell="<<freqCell<<", timeCell="<<itsTStep/itsSolInt<<", tstep="<<itsTStep<<endl;
         casa::Matrix<casa::DComplex> sol = iS[freqCell].getSolution();
         for (uint st=0; st<info().antennaNames().size(); st++) {
-          for (uint cr=0; cr<nCr; ++cr) {
+          for (uint cr=0; cr<iS[0].savedNCr; ++cr) {
             allg(st,cr,freqCell)=sol(st,cr);
           }
         }
diff --git a/CEP/DP3/DPPP/src/StefCal.cc b/CEP/DP3/DPPP/src/StefCal.cc
index cd12aa8471a0cd627459d44a1a517c2410cc9eff..c7175bb3cf82d234aa9e723f78e86f84d81d8a02 100644
--- a/CEP/DP3/DPPP/src/StefCal.cc
+++ b/CEP/DP3/DPPP/src/StefCal.cc
@@ -65,14 +65,17 @@ namespace LOFAR {
         nUn=nSt;
         nCr=4;
         nSp=1;
+        savedNCr=4;
       } else if (_mode=="scalarphase") {
         nUn=nSt;
         nCr=1;
         nSp=2;
+        savedNCr=1;
       } else { // mode=="phaseonly", mode=="diagonal"
         nUn=nSt*2;
         nCr=1;
         nSp=1;
+        savedNCr=2;
       }
 
       g.resize(nUn,nCr);
@@ -226,11 +229,7 @@ namespace LOFAR {
 
     casa::Matrix<casa::DComplex> StefCal::getSolution() {
       casa::Matrix<casa::DComplex> sol;
-      if (_mode=="diagonal" || _mode=="phaseonly") {
-        sol.resize(_antMap.size(), 2);
-      } else {
-        sol.resize(_antMap.size(), nCr);
-      }
+      sol.resize(_antMap.size(), savedNCr);
 
       uint sSt=0; // Index in stefcal numbering
       for (uint st=0; st<_antMap.size(); ++st) {