diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/gui/quality/histogrampage.h b/CEP/DP3/AOFlagger/include/AOFlagger/gui/quality/histogrampage.h
index e2fb7f66a9bc701952f4cc3fd876bc58f249005c..68d46a520b79de2bce69d9d6f3be525bd92678ad 100644
--- a/CEP/DP3/AOFlagger/include/AOFlagger/gui/quality/histogrampage.h
+++ b/CEP/DP3/AOFlagger/include/AOFlagger/gui/quality/histogrampage.h
@@ -100,7 +100,7 @@ class HistogramPage : public Gtk::HBox {
 		
 		Gtk::Frame _fitFrame;
 		Gtk::VBox _fitBox;
-		Gtk::CheckButton _fitButton, _subtractFitButton, _fitAutoRangeButton;
+		Gtk::CheckButton _fitButton, _subtractFitButton, _fitLogarithmicButton, _fitAutoRangeButton;
 		Gtk::Entry _fitStartEntry, _fitEndEntry;
 		Gtk::TextView _fitTextView;
 		
diff --git a/CEP/DP3/AOFlagger/src/gui/quality/histogrampage.cpp b/CEP/DP3/AOFlagger/src/gui/quality/histogrampage.cpp
index 1a198e5c0f674735f921bb5025f3e14ebabb6f2b..4654bb8e4fd2929f5dbec9bd926b2010acf55332 100644
--- a/CEP/DP3/AOFlagger/src/gui/quality/histogrampage.cpp
+++ b/CEP/DP3/AOFlagger/src/gui/quality/histogrampage.cpp
@@ -44,6 +44,7 @@ HistogramPage::HistogramPage() :
 	_fitFrame("Fitting"),
 	_fitButton("Fit"),
 	_subtractFitButton("Subtract"),
+	_fitLogarithmicButton("Log fit"),
 	_fitAutoRangeButton("Auto range"),
 	_functionFrame("Function"),
 	_nsButton("N(S)"),
@@ -96,6 +97,8 @@ HistogramPage::HistogramPage() :
 	_fitButton.signal_clicked().connect(sigc::mem_fun(*this, &HistogramPage::updatePlot));
 	_fitBox.pack_start(_subtractFitButton, Gtk::PACK_SHRINK);
 	_subtractFitButton.signal_clicked().connect(sigc::mem_fun(*this, &HistogramPage::updatePlot));
+	_fitBox.pack_start(_fitLogarithmicButton, Gtk::PACK_SHRINK);
+	_fitLogarithmicButton.signal_clicked().connect(sigc::mem_fun(*this, &HistogramPage::updatePlot));
 	_fitBox.pack_start(_fitAutoRangeButton, Gtk::PACK_SHRINK);
 	_fitAutoRangeButton.set_active(true);
 	_fitAutoRangeButton.signal_clicked().connect(sigc::mem_fun(*this, &HistogramPage::onAutoRangeClicked));
@@ -314,6 +317,7 @@ void HistogramPage::plotFit(const LogHistogram &histogram, const std::string &ti
 	}
 	double sigma = sigmaEstimate, n = RayleighFitter::NEstimate(histogram, minRange, maxRange);
 	RayleighFitter fitter;
+	fitter.SetFitLogarithmic(_fitLogarithmicButton.get_active());
 	fitter.Fit(minRange, maxRange, histogram, sigma, n);
 	if(_fitButton.get_active())
 	{
diff --git a/CEP/DP3/AOFlagger/src/quality/rayleighfitter.cpp b/CEP/DP3/AOFlagger/src/quality/rayleighfitter.cpp
index f59518317e9860438ebaee59dfedb77061ab0779..090c223ca2ae504da600602fc59f72f57697fc62 100644
--- a/CEP/DP3/AOFlagger/src/quality/rayleighfitter.cpp
+++ b/CEP/DP3/AOFlagger/src/quality/rayleighfitter.cpp
@@ -33,10 +33,9 @@ static int fit_f(const gsl_vector *xvec, void *data, gsl_vector *f)
 			double sigmaP2 = sigma*sigma;
 			double Yi = x * exp(-(x*x)/(2*sigmaP2)) * n / sigmaP2;
 			if(fitter.FitLogarithmic())
-				gsl_vector_set(f, t, (Yi - val));
-			else
 				gsl_vector_set(f, t, log(Yi) - log(val));
-			
+			else
+				gsl_vector_set(f, t, (Yi - val));
 			++t;
 		}
 	}