diff --git a/bilby/gw/detector.py b/bilby/gw/detector.py
index 23e7ef16d1239ddf5385aa788efbabc37dfe3818..2d68559921f0c696e386c92be7a5b29af2ccf7d3 100644
--- a/bilby/gw/detector.py
+++ b/bilby/gw/detector.py
@@ -469,16 +469,20 @@ class InterferometerStrainData(object):
 
         """
 
+        data = self.time_domain_strain
+
         if analysis_segment_start_time is not None:
-            logger.info("Removing analysis segment data from the PSD data")
             analysis_segment_end_time = analysis_segment_start_time + fft_length
-            idxs = (
-                (self.time_array < analysis_segment_start_time) +
-                (self.time_array > analysis_segment_end_time))
-            data = self.time_domain_strain[idxs]
-        else:
-            data = self.time_domain_strain
-
+            inside = (analysis_segment_start_time > self.time_array[0] +
+                      analysis_segment_end_time < self.time_array[-1])
+            if inside:
+                logger.info("Removing analysis segment data from the PSD data")
+                idxs = (
+                    (self.time_array < analysis_segment_start_time) +
+                    (self.time_array > analysis_segment_end_time))
+                data = data[idxs]
+
+        # WARNING this line can cause issues if the data is non-contiguous
         strain = gwpy.timeseries.TimeSeries(data=data, sample_rate=self.sampling_frequency)
         psd_alpha = 2 * self.roll_off / fft_length
         logger.info(