diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc
index 624f5b33f53a30354d9cd153e1cd7edf416affa1..01b5ef1c5c54ff2407bdb5d27815e9dd22a728ab 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc
@@ -51,6 +51,7 @@ namespace LOFAR
       unsigned nrBitsPerSample_,
       unsigned nrChannels_,
       unsigned nrSamplesPerChannel_,
+      unsigned clockMHz_,
       double subbandBandwidth_,
       unsigned nrSAPs_,
       bool correlator_,
@@ -67,6 +68,7 @@ namespace LOFAR
       nrBitsPerSample(nrBitsPerSample_),
       nrChannels(nrChannels_),
       nrSamplesPerChannel(nrSamplesPerChannel_),
+      clockMHz(clockMHz_),
       subbandBandwidth(subbandBandwidth_),
       nrSAPs(nrSAPs_),
       delayCompensation(delayCompensation_),
@@ -227,8 +229,10 @@ namespace LOFAR
       if (itsParameters.transpose)
         defs["DO_TRANSPOSE"] = "1";
 
-      if (itsParameters.dopplerCorrection)
+      if (itsParameters.dopplerCorrection) {
         defs["DOPPLER_CORRECTION"] = "1";
+        defs["CLOCK_MHZ"] = lexical_cast<string>(itsParameters.clockMHz);
+      }
 
       return defs;
     }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h
index 2b07f320470bc008a6d6940c1bf7c4c4f49078a6..b37693bd27234c5bde854afe50b80b9d98c5bacf 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h
@@ -62,6 +62,7 @@ namespace LOFAR
           unsigned nrBitsPerSample,
           unsigned nrChannels,
           unsigned nrSamplesPerChannel,
+          unsigned clockMHz,
           double subbandBandwidth,
           unsigned nrSAPs,
           bool correlator,
@@ -79,6 +80,9 @@ namespace LOFAR
 
         unsigned nrChannels;
         unsigned nrSamplesPerChannel;
+        // Clock freq used to calculate input samplie freq=clockMHz/1024 MHz
+        // for Doppler correction
+        unsigned clockMHz;
         double subbandBandwidth;
 
         unsigned nrSAPs;
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc
index ef7c6f979ef7b92883e6f6efd3e78a45fdc23c8b..4d4e9dacdd10ca7bc965a6947e8c22739a7b86eb 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc
@@ -121,9 +121,6 @@ namespace LOFAR
         return (dopplerCorrection?
           (size_t) 1 * nrSTABs * // nrSAPs=1 here
             NR_POLARIZATIONS * sizeof(double) : 0);
-      case FIR_FilterKernel::PHASE_ZEROS:
-        return (dopplerCorrection?
-          (size_t) nrSTABs * NR_POLARIZATIONS * sizeof(double): 0);
       default:
         THROW(GPUProcException, "Invalid bufferType (" << bufferType << ")");
       }
@@ -140,8 +137,7 @@ namespace LOFAR
       historySamples(stream.getContext(), params.bufferSize(HISTORY_DATA)),
       historyFlags(boost::extents[params.nrSubbands][params.nrSTABs]),
       delaysAtBegin(stream.getContext(), params.bufferSize(DELAYS)),
-      delaysAfterEnd(stream.getContext(), params.bufferSize(DELAYS)),
-      phase0s(stream.getContext(), params.bufferSize(PHASE_ZEROS))
+      delaysAfterEnd(stream.getContext(), params.bufferSize(DELAYS))
     {
       setArg(0, buffers.output);
       setArg(1, buffers.input);
@@ -149,7 +145,6 @@ namespace LOFAR
       setArg(3, historySamples);
       setArg(4, delaysAtBegin);
       setArg(5, delaysAfterEnd);
-      setArg(6, phase0s);
 
       unsigned totalNrThreads = params.nrChannels * NR_POLARIZATIONS * 2;
       unsigned nrPasses = ceilDiv(totalNrThreads, maxThreadsPerBlock);
@@ -195,8 +190,8 @@ namespace LOFAR
     void FIR_FilterKernel::enqueue(const BlockID &blockId,
                                    unsigned subbandIdx, double subbandFrequency)
     {
-      setArg(7, subbandIdx);
-      setArg(8, subbandFrequency);
+      setArg(6, subbandIdx);
+      setArg(7, subbandFrequency);
       Kernel::enqueue(blockId);
     }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h
index 63a6605f45bbe0f6beae8af9624e7fce7d0f5b9c..7ab2d9499a8e703eef004c68cccd51b5fad5b5ef 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h
@@ -45,8 +45,7 @@ namespace LOFAR
         OUTPUT_DATA,
         FILTER_WEIGHTS,
         HISTORY_DATA,
-        DELAYS,
-        PHASE_ZEROS
+        DELAYS
       };
 
       // Parameters that must be passed to the constructor of the
@@ -144,7 +143,7 @@ namespace LOFAR
 
     public:
       // Delay compensation constants to be written by the caller before enqueue()
-      gpu::DeviceMemory delaysAtBegin, delaysAfterEnd, phase0s;
+      gpu::DeviceMemory delaysAtBegin, delaysAfterEnd;
     };
 
     //# --------  Template specializations for KernelFactory  -------- #//
diff --git a/RTCP/Cobalt/GPUProc/src/SubbandProcs/BeamFormerPreprocessingStep.cc b/RTCP/Cobalt/GPUProc/src/SubbandProcs/BeamFormerPreprocessingStep.cc
index 2b96545c215eaee03f2477c6c730eedf2d3b079e..8c55db441f7105d15893b2f91269cf617d8a676c 100644
--- a/RTCP/Cobalt/GPUProc/src/SubbandProcs/BeamFormerPreprocessingStep.cc
+++ b/RTCP/Cobalt/GPUProc/src/SubbandProcs/BeamFormerPreprocessingStep.cc
@@ -84,6 +84,7 @@ namespace LOFAR
           obsParameters.nrBitsPerSample,
           preParameters.nrDelayCompensationChannels,
           obsParameters.blockSize / preParameters.nrDelayCompensationChannels,
+          obsParameters.clockMHz, //not needed in beamformer pipeline
           obsParameters.subbandWidth,
           obsParameters.nrSAPs,
           false, // correlator
diff --git a/RTCP/Cobalt/GPUProc/src/SubbandProcs/CorrelatorStep.cc b/RTCP/Cobalt/GPUProc/src/SubbandProcs/CorrelatorStep.cc
index f8e34cca7cb84a8fed10492dec3f884115f9c5c4..f4ffbffcca420ad705cf625fc5982484e7801820 100644
--- a/RTCP/Cobalt/GPUProc/src/SubbandProcs/CorrelatorStep.cc
+++ b/RTCP/Cobalt/GPUProc/src/SubbandProcs/CorrelatorStep.cc
@@ -98,6 +98,7 @@ namespace LOFAR
         obsParameters.nrBitsPerSample,
         corParameters.nrChannels,
         obsParameters.blockSize / corParameters.nrChannels,
+        obsParameters.clockMHz,
         obsParameters.subbandWidth,
         obsParameters.nrSAPs,
         true, // correlator
@@ -355,8 +356,6 @@ namespace LOFAR
           input.delaysAtBegin, false);
         htodStream->writeBuffer(firFilterKernel->delaysAfterEnd,
           input.delaysAfterEnd, false);
-        htodStream->writeBuffer(firFilterKernel->phase0s,
-          input.phase0s, false);
       }
 
       if (preParameters.delayCompensationEnabled) {
diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel.cc b/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel.cc
index e3486039711d662323c03f957c47504f130fb4ee..2f14c7385f7f3773c83a551234ef85d04093a78e 100644
--- a/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel.cc
+++ b/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel.cc
@@ -67,6 +67,7 @@ int main(int argc, char *argv[])
       ps.settings.nrBitsPerSample,
       ps.settings.beamFormer.nrDelayCompensationChannels,
       ps.settings.blockSize / ps.settings.beamFormer.nrDelayCompensationChannels,
+      ps.settings.clockMHz,
       ps.settings.subbandWidth(),
       ps.settings.SAPs.size(),
       ps.settings.delayCompensation.enabled,
diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.cc b/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.cc
index 65ad6919b628a84c7488f9816ff70d5412e70bdf..dae560faf4aaff0b20f11adcb6e484fcd50699b6 100644
--- a/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.cc
+++ b/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.cc
@@ -37,6 +37,7 @@ struct TestFixture
     ps.settings.nrBitsPerSample,
     ps.settings.correlator.nrChannels,
     ps.settings.blockSize / ps.settings.correlator.nrChannels,
+    ps.settings.clockMHz,
     ps.settings.subbandWidth(),
     ps.settings.SAPs.size(),
     ps.settings.delayCompensation.enabled,
diff --git a/RTCP/Cobalt/GPUProc/test/cuda/tFIR_Filter.cc b/RTCP/Cobalt/GPUProc/test/cuda/tFIR_Filter.cc
index 743f2ba01a8bfa464172dc433bf7e401cec1b553..550da33ada1334ac0da9c26c6647b70c260cad59 100644
--- a/RTCP/Cobalt/GPUProc/test/cuda/tFIR_Filter.cc
+++ b/RTCP/Cobalt/GPUProc/test/cuda/tFIR_Filter.cc
@@ -130,7 +130,6 @@ int test()
   // Empty data for Doppler correction
   DeviceMemory devDelaysAtBegin(ctx, 0);
   DeviceMemory devDelaysAfterEnd(ctx, 0);
-  DeviceMemory devPhase0s(ctx, 0);
 
   unsigned station, sample, ch, pol;
 
@@ -192,19 +191,20 @@ int test()
   stream.writeBuffer(devFirWeights, rawFirWeights, true);
   stream.writeBuffer(devHistoryData, rawHistoryData, true);
 
+  unsigned subbandIdx = 0;
+  double subbandFrequency=0.0; // Not used unless Doppler corr. enabled
+
   // Run the kernel on the created data
   hKernel.setArg(0, devFilteredData);
   hKernel.setArg(1, devSampledData);
   hKernel.setArg(2, devFirWeights);
   hKernel.setArg(3, devHistoryData);
-  // Just pass empty buffers
+  // Just pass empty buffers for the following two
   hKernel.setArg(4, devDelaysAtBegin);
   hKernel.setArg(5, devDelaysAfterEnd);
-  hKernel.setArg(6, devPhase0s);
-  unsigned subbandIdx = 0;
-  hKernel.setArg(7, subbandIdx);
-  double subbandFrequency=0.0; // Not used unless Doppler corr. enabled
-  hKernel.setArg(8, subbandFrequency);
+  // standard values 
+  hKernel.setArg(6, subbandIdx);
+  hKernel.setArg(7, subbandFrequency);
 
   // Run the kernel
   stream.synchronize();