diff --git a/gstlal-ugly/bin/gstlal_ll_dq b/gstlal-ugly/bin/gstlal_ll_dq
index 2e14d326a7d902d00733762b1013d52e991ef5e0..1d6610cac2c74b23eec892908ae1af01e8b19e66 100755
--- a/gstlal-ugly/bin/gstlal_ll_dq
+++ b/gstlal-ugly/bin/gstlal_ll_dq
@@ -82,26 +82,25 @@ class NoiseTracker(object):
 
 	def on_buffer(self, buf):
 		if self.last_reduce_time is None:
-			self.last_reduce_time = int(round(buf.t0, -2))
-		if buf.data is None:
-			return
-
+			self.last_reduce_time = round(int(buf.t0), -2)
 		logging.debug(f"found buffer at t = {buf.t0}")
+
 		# First noise
-		ix = numpy.argmax(buf.data, axis=0)[1]
-		self.timedeq.append(buf.t0)
-		self.datadeq['noise'].append(buf.data[ix,1])
+		ix = numpy.argmax(buf.data[0])
+		self.timedeq.append(int(buf.t0))
+		self.datadeq['noise'].append(buf.data[0,ix])
 
-		# Then range
-		self.datadeq['range_history'].append(self.horizon_distance_func(self.psd, 8)[0] / 2.25)
+		if self.psd:
+			# Then range
+			self.datadeq['range_history'].append(self.horizon_distance_func(self.psd, 8)[0] / 2.25)
 
-		# The PSD
-		psd_freq = numpy.arange(self.psd.data.length / 4) * self.psd.deltaF * 4
-		psd_data = signal.decimate(self.psd.data.data[:], 4, ftype='fir', zero_phase=False)[:-1]**.5
+			# The PSD
+			psd_freq = numpy.arange(self.psd.data.length / 4) * self.psd.deltaF * 4
+			psd_data = signal.decimate(self.psd.data.data[:], 4, ftype='fir', zero_phase=False)[:-1]**.5
 
 		# Only reduce every 100s
 		if (buf.t0 - self.last_reduce_time) >= 100:
-			self.last_reduce_time = int(round(buf.t0, -2))
+			self.last_reduce_time = round(int(buf.t0), -2)
 			logging.info("reducing data and writing PSD snapshot for %d @ %d" % (buf.t0, int(utils.gps_now())))
 
 			data = {route: {self.instrument: {'time': list(self.timedeq), 'fields': {'data': list(self.datadeq[route])}}} for route in self.routes}
@@ -119,8 +118,8 @@ class NoiseTracker(object):
 			# NOTE: The PSD is special, we just record it. No min/median/max
 			thisdir = os.path.join(self.out_path, core.gps_to_leaf_directory(buf.t0))
 			core.makedir(thisdir)
-			psd_name = "%s-PSD-%d-100.hdf5" % (self.instrument, int(round(buf.t0, -2)))
-			self.to_hdf5(os.path.join(thisdir, psd_name), {"freq": psd_freq, "asd": psd_data, "time": numpy.array([buf.t0])})
+			psd_name = "%s-PSD-%d-100.hdf5" % (self.instrument, round(int(buf.t0), -2))
+			self.to_hdf5(os.path.join(thisdir, psd_name), {"freq": psd_freq, "asd": psd_data, "time": numpy.array([int(buf.t0)])})
 
 	def to_hdf5(self, path, datadict):
 		tmppath = "/dev/shm/%s" % path.replace("/","_") + ".tmp"
@@ -177,8 +176,7 @@ if __name__ == '__main__':
 		.whiten(fft_length=options.psd_fft_length, expand_gaps=True) \
 		.queue() \
 		.reblock() \
-		.nxydump() \
-		.sink(tracker.on_buffer)
+		.bufsink(tracker.on_buffer)
 
 	#
 	# process segment