diff --git a/gstlal-calibration/configure.ac b/gstlal-calibration/configure.ac
index dc1d6b11b45838eab506ea4c9af952b8a8d296b4..d85596ecd156f19d8400329e1af4f737e457791d 100644
--- a/gstlal-calibration/configure.ac
+++ b/gstlal-calibration/configure.ac
@@ -225,12 +225,10 @@ AC_SUBST([LAL_LIBS])
 
 
 #
-# Check for glue
+# Check for ligo_segments
 #
 
 
-AC_SUBST([MIN_GLUE_VERSION], [1.50])
-AX_PYTHON_GLUE()
 AC_SUBST([MIN_LIGO_SEGMENTS_VERSION], [1.1.0])
 AX_PYTHON_LIGO_SEGMENTS([$MIN_LIGO_SEGMENTS_VERSION])
 
diff --git a/gstlal-calibration/debian/control.in b/gstlal-calibration/debian/control.in
index 050335616c2e78b612ac71403fa17ecc6d485379..503ea4817475492ae13be59d70db177ee6bb5b38 100644
--- a/gstlal-calibration/debian/control.in
+++ b/gstlal-calibration/debian/control.in
@@ -14,7 +14,6 @@ Build-Depends:
  libgstreamer-plugins-base1.0-dev (>= @MIN_GSTREAMER_VERSION@),
  pkg-config,
  python-all-dev (>= @MIN_PYTHON_VERSION@),
- python-glue (>= @MIN_GLUE_VERSION@),
  python-numpy
 
 Package: gstlal-calibration
@@ -36,7 +35,6 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends},
  libgstreamer-plugins-base1.0-0 (>= @MIN_GSTREAMER_VERSION@),
  python (>= @MIN_PYTHON_VERSION@),
  python-gi,
- python-glue (>= @MIN_GLUE_VERSION@),
  python-ligo-segments (>= @MIN_LIGO_SEGMENTS_VERSION@),
  python-gst-1.0,
  python-numpy,
diff --git a/gstlal-calibration/examples/L1_GDS_CALCS_comparison_plots b/gstlal-calibration/examples/L1_GDS_CALCS_comparison_plots
index fcb99702318909cad76d810df3642768991b0058..2c74303638476f46237fb590e7b315dbe50161e2 100755
--- a/gstlal-calibration/examples/L1_GDS_CALCS_comparison_plots
+++ b/gstlal-calibration/examples/L1_GDS_CALCS_comparison_plots
@@ -9,7 +9,6 @@ from math import pi
 from gwpy.plotter import BodePlot
 import numpy
 from optparse import OptionParser, Option
-from glue import datafind
 
 parser = OptionParser()
 
diff --git a/gstlal-calibration/gstlal-calibration.spec.in b/gstlal-calibration/gstlal-calibration.spec.in
index 7f7720059134b39b43ceefc1382220365a466803..6d4b2ff59349eb9cf91209073bc1a03a04fb3bd0 100644
--- a/gstlal-calibration/gstlal-calibration.spec.in
+++ b/gstlal-calibration/gstlal-calibration.spec.in
@@ -10,7 +10,6 @@ Group: LSC Software/Data Analysis
 Requires: gstlal >= @MIN_GSTLAL_VERSION@
 Requires: gstlal-ugly >= @MIN_GSTLALUGLY_VERSION@
 Requires: python >= @MIN_PYTHON_VERSION@
-Requires: glue >= @MIN_GLUE_VERSION@
 Requires: python2-ligo-segments >= @MIN_LIGO_SEGMENTS_VERSION@
 Requires: %{gstreamername} >= @MIN_GSTREAMER_VERSION@
 Requires: %{gstreamername}-plugins-base >= @MIN_GSTREAMER_VERSION@
diff --git a/gstlal-calibration/python/calibration_parts.py b/gstlal-calibration/python/calibration_parts.py
index a4f85c4f400a82a84b99d7fa19cf0ad404ba15ce..109db0255b37d4f5dda4f27a920a5ecbdb468303 100644
--- a/gstlal-calibration/python/calibration_parts.py
+++ b/gstlal-calibration/python/calibration_parts.py
@@ -290,32 +290,32 @@ def remove_lines_with_witnesses(pipeline, signal, witnesses, freqs, freq_vars, f
 
 	# Re-format inputs if necessary
 	if type(witnesses) is not list and type(witnesses) is not tuple and type(witnesses) is not numpy.ndarray:
-		print "remove_lines_with_witnesses(): argument 3 should be type list.  Converting %s to list" % type(witnesses)
+		print("remove_lines_with_witnesses(): argument 3 should be type list.  Converting %s to list" % type(witnesses))
 		witnesses = [[witnesses]]
 	if type(freqs) is not list and type(freqs) is not tuple and type(freqs) is not numpy.ndarray:
-		print "remove_lines_with_witnesses(): argument 4 should be type list.  Converting %s to list" % type(freqs)
+		print("remove_lines_with_witnesses(): argument 4 should be type list.  Converting %s to list" % type(freqs))
 		freqs = [[freqs]]
 	if type(freq_vars) is not list and type(freq_vars) is not tuple and type(freq_vars) is not numpy.ndarray:
-		print "remove_lines_with_witnesses(): argument 5 should be type list.  Converting %s to list" % type(freq_vars)
+		print("remove_lines_with_witnesses(): argument 5 should be type list.  Converting %s to list" % type(freq_vars))
 		freq_vars = [freq_vars]
 	for i in range(0, len(witnesses) - len(freqs)):
-		print "remove_lines_with_witnesses(): Warning: not enough elements in argument 4"
+		print("remove_lines_with_witnesses(): Warning: not enough elements in argument 4")
 		freqs.append(freqs[-1])
 	for i in range(0, len(witnesses) - len(freq_vars)):
-		print "remove_lines_with_witnesses(): Warning: not enough elements in argument 5"
+		print("remove_lines_with_witnesses(): Warning: not enough elements in argument 5")
 		freq_vars.append(freq_vars[-1])
 	if len(freqs) > len(witnesses):
-		print "remove_lines_with_witnesses(): Warning: too many elements in argument 4"
+		print("remove_lines_with_witnesses(): Warning: too many elements in argument 4")
 		freqs = freqs[:len(witnesses)]
 	if len(freq_vars) > len(witnesses):
-		print "remove_lines_with_witnesses(): Warning: too many elements in argument 5"
+		print("remove_lines_with_witnesses(): Warning: too many elements in argument 5")
 		freq_vars = freq_vars[:len(witnesses)]
 	for i in range(0, len(witnesses)):
 		if type(witnesses[i]) is not list and type(witnesses[i]) is not tuple and type(witnesses[i]) is not numpy.ndarray:
-			print "remove_lines_with_witnesses(): argument 3 should be list of lists.  Converting %s to list" % type(witnesses[i])
+			print("remove_lines_with_witnesses(): argument 3 should be list of lists.  Converting %s to list" % type(witnesses[i]))
 			witnesses[i] = [witnesses[i]]
 		if type(freqs[i]) is not list and type(freqs[i]) is not tuple and type(freqs[i]) is not numpy.ndarray:
-			print "remove_lines_with_witnesses(): argument 4 should be list of lists.  Converting %s to list" % type(freqs[i])
+			print("remove_lines_with_witnesses(): argument 4 should be list of lists.  Converting %s to list" % type(freqs[i]))
 			freqs[i] = [freqs[i]]
 
 	filter_param = 0.0625
diff --git a/gstlal-calibration/tests/GDS_CALCS_comparison_plots b/gstlal-calibration/tests/GDS_CALCS_comparison_plots
index 426b47c59ac813ace609777639a44e9d4074f5b9..f5af945f9a71f67e91dbd7bfaec0d1c6a2bce3d3 100755
--- a/gstlal-calibration/tests/GDS_CALCS_comparison_plots
+++ b/gstlal-calibration/tests/GDS_CALCS_comparison_plots
@@ -1,7 +1,6 @@
 #!/usr/bin/env python
 
 from gwpy.timeseries import TimeSeries
-from glue import datafind
 import glob
 from math import pi
 import matplotlib as mpl; mpl.use('Agg')
diff --git a/gstlal-calibration/tests/check_calibration/ASD_comparison_plots b/gstlal-calibration/tests/check_calibration/ASD_comparison_plots
index a133fa4d4dceb8912c6c4609ba319349261c4bf7..566fec93c9fc4f7d6989c2153c58d74997799736 100755
--- a/gstlal-calibration/tests/check_calibration/ASD_comparison_plots
+++ b/gstlal-calibration/tests/check_calibration/ASD_comparison_plots
@@ -9,7 +9,6 @@ from math import pi
 from gwpy.plotter import BodePlot
 import numpy
 from optparse import OptionParser, Option
-from glue import datafind
 
 parser = OptionParser()
 
diff --git a/gstlal-calibration/tests/check_calibration/ASD_plots b/gstlal-calibration/tests/check_calibration/ASD_plots
index 9ecb57e03babbcdad40fd0c9a75d4ba983dfebf9..ebe516b0878adf1d8c282ace68c0f5e0cb6b83b8 100755
--- a/gstlal-calibration/tests/check_calibration/ASD_plots
+++ b/gstlal-calibration/tests/check_calibration/ASD_plots
@@ -9,7 +9,6 @@ from math import pi
 from gwpy.plotter import BodePlot
 import numpy
 from optparse import OptionParser, Option
-from glue import datafind
 
 parser = OptionParser()
 
diff --git a/gstlal-calibration/tests/test_common.py b/gstlal-calibration/tests/test_common.py
index b0f2c7bc2bd7269f59c911a14f890471b709a462..00852a7a9a106b2361fa2a4fe4f57b4159c1d40a 100644
--- a/gstlal-calibration/tests/test_common.py
+++ b/gstlal-calibration/tests/test_common.py
@@ -159,7 +159,7 @@ def transform_arrays(input_arrays, elemfunc, name, rate = 1, **elemfunc_kwargs):
 	pipeline = Gst.Pipeline(name = name)
 
 	head = pipeparts.mkgeneric(pipeline, None, "appsrc", caps = pipeio.caps_from_array(input_arrays[0], rate = rate))
-	def need_data(elem, arg, (input_arrays, rate)):
+	def need_data(elem, arg, input_arrays, rate):
 		if input_arrays:
 			arr = input_arrays.pop(0)
 			elem.set_property("caps", pipeio.caps_from_array(arr, rate))
@@ -169,7 +169,7 @@ def transform_arrays(input_arrays, elemfunc, name, rate = 1, **elemfunc_kwargs):
 		else:
 			elem.emit("end-of-stream")
 			return Gst.FlowReturn.EOS
-	head.connect("need-data", need_data, (input_arrays, rate))
+	head.connect("need-data", need_data, input_arrays, rate)
 
 	head = elemfunc(pipeline, head, **elemfunc_kwargs)