diff --git a/Python_script/analysis.py b/Python_script/analysis.py
index e15e505c1c68a653a61846df5cc443a7737ae6c9..77c600308bda35f5c7e25e37377f6549a547f136 100644
--- a/Python_script/analysis.py
+++ b/Python_script/analysis.py
@@ -141,8 +141,14 @@ def plot_sweep(temperatures, humidities, basename, sweep_type, measurement_sets,
         deriv_data = derivatives[measurement_set]
         for i in range(len(data['signal0_means'])-1):
             ylabel = '$\\Delta$ '+reference_signal_names[0]+' '+denominator_name
-            deriv_data['signal0_deltas'].append((data['signal0_means'][i+1]-data['signal0_means'][i])/
-                                                (data['x_data'][i+1]-data['x_data'][i]))
+            delta_signal0 = (data['signal0_means'][i+1]-data['signal0_means'][i])
+            if analysis_config['type'] == 'rf_cable': #fixme: make this a "circular" option
+                #normalise phase differences to less than 180 degress on a circle
+                if delta_signal0 > 180.:
+                    delta_signal0 -= 360.
+                if delta_signal0 < -180:
+                    delta_signal0 += 360.
+            deriv_data['signal0_deltas'].append(delta_signal0/(data['x_data'][i+1]-data['x_data'][i]))
             deriv_data['signal1_deltas'].append((data['signal1_means'][i+1]-data['signal1_means'][i])/
                                                 (data['x_data'][i+1]+data['x_data'][i]))
             deriv_data['x_deltas'].append((data['x_data'][i+1]+data['x_data'][i])/2)