diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/gui/mswindow.h b/CEP/DP3/AOFlagger/include/AOFlagger/gui/mswindow.h
index dbeb29918cd83669f40447eeffac1816ebdae474..e5877e1fdf647b14108d4e0a47dc89557b873960 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/gui/mswindow.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/gui/mswindow.h
@@ -167,6 +167,9 @@ class MSWindow : public Gtk::Window {
 		void onRayleighTestSets() { _gaussianTestSets = false; }
 		void onAddStaticFringe();
 		void onAdd1SigmaFringe();
+		void onSetToOne();
+		void onSetToI();
+		void onSetToOnePlusI();
 		void onShowStats();
 		void onPlotDistPressed();
 		void onPlotComplexPlanePressed();
@@ -200,7 +203,7 @@ class MSWindow : public Gtk::Window {
 		void onSimulateSourceSetA() { loadDefaultModel(DefaultModels::ConstantDistortion, true); }
 		void onSimulateSourceSetB() { loadDefaultModel(DefaultModels::VariableDistortion, true); }
 		void onSimulateSourceSetC() { loadDefaultModel(DefaultModels::FaintDistortion, true); }
-		void onSimulateSourceSetD() { loadDefaultModel(DefaultModels::MisslocatedDistortion, true); }
+		void onSimulateSourceSetD() { loadDefaultModel(DefaultModels::MislocatedDistortion, true); }
 		void onSimulateOffAxisSource() { loadDefaultModel(DefaultModels::ConstantDistortion, false, true); }
 		
 		void onShowAntennaMapWindow();
diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/imaging/defaultmodels.h b/CEP/DP3/AOFlagger/include/AOFlagger/imaging/defaultmodels.h
index a6d1267d9961fbc3d1aa52ad020c75a8ace8e15c..dce474851de3d226364ccc6f43f2ebfa3367fcff 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/imaging/defaultmodels.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/imaging/defaultmodels.h
@@ -29,7 +29,7 @@
 class DefaultModels {
 	public:
 		enum SetLocation { EmptySet, NCPSet, B1834Set };
-		enum Distortion { NoDistortion, ConstantDistortion, VariableDistortion, FaintDistortion, MisslocatedDistortion };
+		enum Distortion { NoDistortion, ConstantDistortion, VariableDistortion, FaintDistortion, MislocatedDistortion };
 
 		static double DistortionRA()
 		{
@@ -62,7 +62,7 @@ class DefaultModels {
 				case FaintDistortion:
 					model.loadUrsaMajorDistortingVariableSource(ra, dec, factor, true, false);
 					break;
-				case MisslocatedDistortion:
+				case MislocatedDistortion:
 					model.loadUrsaMajorDistortingVariableSource(ra, dec, factor, false, true);
 					break;
 			}
diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/msio/image2d.h b/CEP/DP3/AOFlagger/include/AOFlagger/msio/image2d.h
index cfbd3abc95e880bb8bad1ea81948fb0db113da4f..f07f2c6045b287f980739bb8d3f8058a2730c9c0 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/msio/image2d.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/msio/image2d.h
@@ -200,7 +200,14 @@ class Image2D {
 			SetValues(*source);
 		}
 
-		void SetZero();
+		void SetAll(num_t value)
+		{
+			for(long unsigned y=0;y<_height;y++) {
+				for(long unsigned x=0;x<_width;x++) {
+					_data[y*_width+x] = value;
+				}
+			}
+		}
 		
 		inline void AddValue(long x, long y, num_t addValue)
 		{
diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h b/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h
index 1821ebca3f0fb67a8ab3e0480482af017f76b776..ece3861e1b00c14aa6b965461b4f5a5b68726492 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h
@@ -250,6 +250,7 @@ class TimeFrequencyData
 				case DipolePolarisation:
 				case AutoDipolePolarisation:
 				case CrossDipolePolarisation:
+				default:
 					throw BadUsageException("Not implemented");
 					//return CreateSingleComplexImageFromDipole();
 			}
diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/foreachbaselineaction.h b/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/foreachbaselineaction.h
index c7bb669f59f6c1f20b5f23cf7c20f388087e8e59..d15bdf59ca69e54155c894743c2edd180aed6687 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/foreachbaselineaction.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/foreachbaselineaction.h
@@ -65,6 +65,9 @@ namespace rfiStrategy {
 
 			std::set<size_t> &AntennaeToSkip() { return _antennaeToSkip; }
 			const std::set<size_t> &AntennaeToSkip() const { return _antennaeToSkip; }
+			
+			std::set<size_t> &AntennaeToInclude() { return _antennaeToInclude; }
+			const std::set<size_t> &AntennaToInclude() const { return _antennaeToInclude; }
 		private:
 			bool IsBaselineSelected(ImageSetIndex &index);
 			class ImageSetIndex *GetNextIndex();
@@ -174,6 +177,7 @@ namespace rfiStrategy {
 			AntennaInfo _initAntenna1, _initAntenna2;
 			bool _hasInitAntennae;
 			size_t _initPartIndex;
+			std::set<size_t> _antennaeToInclude;
 			std::set<size_t> _antennaeToSkip;
 	};
 }
diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/timeconvolutionaction.h b/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/timeconvolutionaction.h
index 17e7c5b86036a64d7304a44c9c482af524594569..e911da3fceaaf58473901584ae3e0f538ca64548 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/timeconvolutionaction.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/strategy/actions/timeconvolutionaction.h
@@ -617,9 +617,9 @@ private:
 						
 					const numl_t
 						cosValL = cosnl(fourierFactor * posU),
-						sinValL = -sinnl(fourierFactor * posU);
+						sinValL = sinnl(fourierFactor * posU);
 
-					numl_t realVal = (fReal * cosValL - fImag * sinValL) * 0.75 / weightSum;
+					numl_t realVal = (fReal * cosValL + fImag * sinValL) * 0.75 / weightSum;
 					numl_t imagVal = (fReal * sinValL + fImag * cosValL) * 0.75 / weightSum;
 					
 					if(applyOnImages)
diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/test/results/filterresultstest.h b/CEP/DP3/AOFlagger/include/AOFlagger/test/results/filterresultstest.h
index 08babd3af78186c62d737bcaced047b00c6162d7..fd3e6862228fc7a5452107b39416b63b475e2f94 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/test/results/filterresultstest.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/test/results/filterresultstest.h
@@ -64,7 +64,7 @@ class FilterResultsTest : public UnitTest {
 			void operator()();
 		};
 		
-		static rfiStrategy::Strategy *createStrategy(bool withFringeFilter, bool withTimeConv, bool withFrequencyConv)
+		static rfiStrategy::Strategy *createStrategy(bool withFringeFilter, bool withTimeConv, bool withFrequencyConv, bool withTimeClean)
 		{
 			rfiStrategy::Strategy *strategy = new rfiStrategy::Strategy();
 			
@@ -110,6 +110,23 @@ class FilterResultsTest : public UnitTest {
 				}
 			}
 			
+			if(withTimeClean)
+			{
+				rfiStrategy::TimeConvolutionAction *tcAction = new rfiStrategy::TimeConvolutionAction();
+				tcAction->SetSincScale(5.0);
+				tcAction->SetIsSincScaleInSamples(false);
+				tcAction->SetIterations(5);
+				tcAction->SetChannelAveragingSize(1);
+				tcAction->SetAutoAngle(false);
+				tcAction->SetDirectionRad(103.54 * (M_PI / 180.0));
+				tcAction->SetOperation(rfiStrategy::TimeConvolutionAction::IterativeExtrapolatedSincOperation);
+				strategy->Add(tcAction);
+				
+				rfiStrategy::SetImageAction *setAction = new rfiStrategy::SetImageAction();
+				setAction->SetNewImage(rfiStrategy::SetImageAction::SwapRevisedAndContaminated);
+				strategy->Add(setAction);
+			}
+			
 			return strategy;
 		}
 		
@@ -168,17 +185,21 @@ class FilterResultsTest : public UnitTest {
 			Run(strategy, data, setPrefix + "0-" + setName + "-Original.png", "Empty.png");
 			delete strategy;
 
-			strategy = createStrategy(true, false, false);
+			strategy = createStrategy(true, false, false, false);
 			Run(strategy, data, setPrefix + "1-" + setName + "-FringeFilter-Applied.png", setPrefix + "1-" + setName + "-FringeFilter-Difference.png");
 			delete strategy;
 			
-			strategy = createStrategy(false, true, false);
+			strategy = createStrategy(false, true, false, false);
 			Run(strategy, data, setPrefix + "2-" + setName + "-TimeFilter-Applied.png", setPrefix + "2-" + setName + "-TimeFilter-Difference.png");
 			delete strategy;
 			
-			strategy = createStrategy(false, false, true);
+			strategy = createStrategy(false, false, true, false);
 			Run(strategy, data, setPrefix + "3-" + setName + "-FreqFilter-Applied.png", setPrefix + "3-" + setName + "-FreqFilter-Difference.png");
 			delete strategy;
+
+			strategy = createStrategy(false, false, false, true);
+			Run(strategy, data, setPrefix + "4-" + setName + "-TimeClean-Applied.png", setPrefix + "4-" + setName + "-TimeClean-Difference.png");
+			delete strategy;
 		}
 };
 
@@ -206,7 +227,7 @@ inline void FilterResultsTest::TestFaintSource::operator()()
 inline void FilterResultsTest::TestMissedSource::operator()()
 {
 	std::pair<TimeFrequencyData, TimeFrequencyMetaDataPtr> data
-		= DefaultModels::LoadSet(DefaultModels::B1834Set, DefaultModels::MisslocatedDistortion, 1.0);
+		= DefaultModels::LoadSet(DefaultModels::B1834Set, DefaultModels::MislocatedDistortion, 1.0);
  	RunAllMethods(data, "D", "MissedSource");
 }
 
diff --git a/CEP/DP3/AOFlagger/src/gui/mswindow.cpp b/CEP/DP3/AOFlagger/src/gui/mswindow.cpp
index 2ca38be1aeffe0d6298c552d343308fb9e596ace..c556045deb64e79830f4a263102bcfa1b87947c5 100644
--- a/CEP/DP3/AOFlagger/src/gui/mswindow.cpp
+++ b/CEP/DP3/AOFlagger/src/gui/mswindow.cpp
@@ -536,6 +536,12 @@ void MSWindow::createToolbar()
 	sigc::mem_fun(*this, &MSWindow::onAddStaticFringe) );
 	_actionGroup->add( Gtk::Action::create("Add1SigmaStaticFringe", "Static 1 sigma fringe"),
 	sigc::mem_fun(*this, &MSWindow::onAdd1SigmaFringe) );
+	_actionGroup->add( Gtk::Action::create("SetToOne", "Set to 1"),
+	sigc::mem_fun(*this, &MSWindow::onSetToOne) );
+	_actionGroup->add( Gtk::Action::create("SetToI", "Set to i"),
+	sigc::mem_fun(*this, &MSWindow::onSetToI) );
+	_actionGroup->add( Gtk::Action::create("SetToOnePlusI", "Set to 1+i"),
+	sigc::mem_fun(*this, &MSWindow::onSetToOnePlusI) );
 	_actionGroup->add( Gtk::Action::create("MultiplyData", "Multiply data..."),
 	sigc::mem_fun(*this, &MSWindow::onMultiplyData) );
 	_actionGroup->add( Gtk::Action::create("Compress", "Compress"),
@@ -729,6 +735,9 @@ void MSWindow::createToolbar()
 		"      <menu action='AddTestModification'>"
 		"        <menuitem action='AddStaticFringe'/>"
 		"        <menuitem action='Add1SigmaStaticFringe'/>"
+		"        <menuitem action='SetToOne'/>"
+		"        <menuitem action='SetToI'/>"
+		"        <menuitem action='SetToOnePlusI'/>"
 		"        <menuitem action='MultiplyData'/>"
 		"      </menu>"
     "      <menuitem action='Compress'/>"
@@ -914,6 +923,63 @@ void MSWindow::onAdd1SigmaFringe()
 	}
 }
 
+void MSWindow::onSetToOne()
+{
+	try {
+		TimeFrequencyData data(GetActiveData());
+		std::pair<Image2DCPtr, Image2DCPtr> images = data.GetSingleComplexImage();
+		Image2DPtr
+			real = Image2D::CreateCopy(images.first),
+			imaginary = Image2D::CreateCopy(images.first);
+		real->SetAll(1.0);
+		imaginary->SetAll(0.0);
+		TimeFrequencyData newData(data.Polarisation(), real, imaginary);
+		_timeFrequencyWidget.SetNewData(newData, _timeFrequencyWidget.GetMetaData());
+		_timeFrequencyWidget.Update();
+	} catch(std::exception &e)
+	{
+		showError(e.what());
+	}
+}
+
+void MSWindow::onSetToI()
+{
+	try {
+		TimeFrequencyData data(GetActiveData());
+		std::pair<Image2DCPtr, Image2DCPtr> images = data.GetSingleComplexImage();
+		Image2DPtr
+			real = Image2D::CreateCopy(images.first),
+			imaginary = Image2D::CreateCopy(images.first);
+		real->SetAll(0.0);
+		imaginary->SetAll(1.0);
+		TimeFrequencyData newData(data.Polarisation(), real, imaginary);
+		_timeFrequencyWidget.SetNewData(newData, _timeFrequencyWidget.GetMetaData());
+		_timeFrequencyWidget.Update();
+	} catch(std::exception &e)
+	{
+		showError(e.what());
+	}
+}
+
+void MSWindow::onSetToOnePlusI()
+{
+	try {
+		TimeFrequencyData data(GetActiveData());
+		std::pair<Image2DCPtr, Image2DCPtr> images = data.GetSingleComplexImage();
+		Image2DPtr
+			real = Image2D::CreateCopy(images.first),
+			imaginary = Image2D::CreateCopy(images.first);
+		real->SetAll(1.0);
+		imaginary->SetAll(1.0);
+		TimeFrequencyData newData(data.Polarisation(), real, imaginary);
+		_timeFrequencyWidget.SetNewData(newData, _timeFrequencyWidget.GetMetaData());
+		_timeFrequencyWidget.Update();
+	} catch(std::exception &e)
+	{
+		showError(e.what());
+	}
+}
+
 void MSWindow::onShowStats()
 {
 	if(_timeFrequencyWidget.HasImage())
diff --git a/CEP/DP3/AOFlagger/src/msio/image2d.cpp b/CEP/DP3/AOFlagger/src/msio/image2d.cpp
index d872d69e3ac97dd4f2c0b1a57bf50ac37375c629..e91343cd60205b88c8534bfba5295330f677fe61 100644
--- a/CEP/DP3/AOFlagger/src/msio/image2d.cpp
+++ b/CEP/DP3/AOFlagger/src/msio/image2d.cpp
@@ -48,26 +48,17 @@ Image2D::~Image2D()
 Image2D *Image2D::CreateEmptyImage(long width, long height) 
 {
 	Image2D *image = new Image2D(width, height);
-	image->SetZero();
+	image->SetAll(0.0);
 	return image;
 }
 
 Image2D *Image2D::CreateZeroImage(long width, long height) 
 {
 	Image2D *image = new Image2D(width, height);
-	image->SetZero();
+	image->SetAll(0.0);
 	return image;
 }
 
-void Image2D::SetZero() 
-{
-	for(long unsigned y=0;y<_height;y++) {
-		for(long unsigned x=0;x<_width;x++) {
-			_data[y*_width+x] = 0.0;
-		}
-	}
-}
-
 Image2D *Image2D::CreateFromSum(const Image2D &imageA, const Image2D &imageB)
 {
 	if(imageA.Width() != imageB.Width() || imageA.Height() != imageB.Height())
diff --git a/CEP/DP3/AOFlagger/src/strategy/actions/foreachbaselineaction.cpp b/CEP/DP3/AOFlagger/src/strategy/actions/foreachbaselineaction.cpp
index f59ab4baacfc6ae21723c004bfeb44ab834a6ae0..fb716f02dc202efbc8e875591ccde39e5b50e49f 100644
--- a/CEP/DP3/AOFlagger/src/strategy/actions/foreachbaselineaction.cpp
+++ b/CEP/DP3/AOFlagger/src/strategy/actions/foreachbaselineaction.cpp
@@ -69,6 +69,20 @@ namespace rfiStrategy {
 					_threadCount = maxThreads;
 				}
 			}
+			if(!_antennaeToSkip.empty())
+			{
+				AOLogger::Debug << "The following antenna's will be skipped: ";
+				for(std::set<size_t>::const_iterator i=_antennaeToSkip.begin();i!=_antennaeToSkip.end(); ++i)
+					AOLogger::Debug << (*i) << ' ';
+				AOLogger::Debug <<'\n';
+			}
+			if(!_antennaeToInclude.empty())
+			{
+				AOLogger::Debug << "Only the following antenna's will be included: ";
+				for(std::set<size_t>::const_iterator i=_antennaeToInclude.begin();i!=_antennaeToInclude.end(); ++i)
+					AOLogger::Debug << (*i) << ' ';
+				AOLogger::Debug <<'\n';
+			}
 
 			if(artifacts.MetaData() != 0)
 			{
@@ -137,6 +151,8 @@ namespace rfiStrategy {
 		size_t a2id = static_cast<MSImageSet*>(imageSet)->GetAntenna2(index);
 		if(_antennaeToSkip.count(a1id) != 0 || _antennaeToSkip.count(a2id) != 0)
 			return false;
+		if(!_antennaeToInclude.empty() && (_antennaeToInclude.count(a1id) == 0 && _antennaeToInclude.count(a2id) == 0))
+			return false;
 
 		switch(_selection)
 		{
diff --git a/CEP/DP3/AOFlagger/src/strategy/algorithms/localfitmethod.cpp b/CEP/DP3/AOFlagger/src/strategy/algorithms/localfitmethod.cpp
index 8e2fab8f49d15e810a88133b99fb433fc5e8a568..a6ad3f4e133910e6461f9c68057484f060e3f562 100644
--- a/CEP/DP3/AOFlagger/src/strategy/algorithms/localfitmethod.cpp
+++ b/CEP/DP3/AOFlagger/src/strategy/algorithms/localfitmethod.cpp
@@ -313,7 +313,7 @@ void LocalFitMethod::PerformGaussianConvolution(Image2DPtr input)
 		}
 	}
 
-	input->SetZero();
+	input->SetAll(0.0);
 	for(int j=-_vSquareSize;j<=(int) _vSquareSize;++j) {
 		num_t gaus = _weights[j+_vSquareSize][_hSquareSize];
 		unsigned yStart = j >= 0 ? 0 : -j;