diff --git a/gstlal-inspiral/bin/gstlal_inspiral b/gstlal-inspiral/bin/gstlal_inspiral
index c2771a644becc07806d385b85b51caeb29d31b46..48bb56e52944acd965070216878ddb3d3726e71e 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral
+++ b/gstlal-inspiral/bin/gstlal_inspiral
@@ -179,11 +179,11 @@ from gstlal import lloidhandler
 from gstlal import lloidparts
 from gstlal import pipeparts
 from gstlal import reference_psd
+from gstlal import servicediscovery
 from gstlal import simulation
 from gstlal import svd_bank
 
 GSTLAL_PROCESS_START_TIME = UTCToGPS(time.gmtime())
-DEFAULT_SERVICE_DOMAIN = "gw.local"
 
 @lsctables.use_in
 class LIGOLWContentHandler(ligolw.LIGOLWContentHandler):
@@ -210,7 +210,7 @@ setrlimit(resource.RLIMIT_STACK, 1024 * 1024) # 1 MiB per thread
 
 
 def service_domain(gracedb_search, gracedb_pipeline):
-	return "%s_%s.%s" % (gracedb_pipeline.lower(), gracedb_search.lower(), DEFAULT_SERVICE_DOMAIN)
+	return "%s_%s.%s" % (gracedb_pipeline.lower(), gracedb_search.lower(), servicediscovery.DEFAULT_SERVICE_DOMAIN)
 
 
 #
@@ -295,6 +295,7 @@ def parse_command_line():
 	group.add_option("-v", "--verbose", action = "store_true", help = "Be verbose (optional).")
 	group.add_option("--write-pipeline", metavar = "filename", help = "Write a DOT graph description of the as-built pipeline to this file (optional).  The environment variable GST_DEBUG_DUMP_DOT_DIR must be set for this option to work.")
 	group.add_option("--output-kafka-server", metavar = "addr", help = "Set the server address and port number for output data. Optional, e.g., 10.14.0.112:9092")
+	group.add_option("--disable-service-discovery", action = "store_true", help = "Disable service discovery. This disables gstlal_inspiral jobs from being able to advertise the location of the services it provides.")
 	parser.add_option_group(group)
 
 	options, filenames = parser.parse_args()
@@ -676,6 +677,7 @@ for output_file_number, (svd_bank_url_dict, output_url, ranking_stat_output_url,
 			"cwd": os.getcwd(),
 			"pid": str(os.getpid()),
 		},
+		service_discovery = not options.disable_service_discovery,
 		verbose = options.verbose
 	)
 
diff --git a/gstlal-inspiral/tests/Makefile.offline_tutorial_test b/gstlal-inspiral/tests/Makefile.offline_tutorial_test
index db8a6a03616b3b626887094446e166f64b725366..a69a0db4ea887d27677608670bd0f706c85acb1a 100644
--- a/gstlal-inspiral/tests/Makefile.offline_tutorial_test
+++ b/gstlal-inspiral/tests/Makefile.offline_tutorial_test
@@ -516,6 +516,7 @@ H1L1-0000_LLOID-$(START)-$(DURATION).xml.gz H1L1-0000_DIST_STATS-$(START)-$(DURA
 		--min-instruments $(MIN_IFOS) \
 		--ht-gate-threshold 100. \
 		--coincidence-threshold 0.005 \
+		--disable-service-discovery \
 		--verbose
 	@echo ""
 
diff --git a/gstlal/python/httpinterface.py b/gstlal/python/httpinterface.py
index c279fe48344e452dfdd38aa4044158e712870ba6..db87527008c7a4660ab00407cd541afe60148f4a 100644
--- a/gstlal/python/httpinterface.py
+++ b/gstlal/python/httpinterface.py
@@ -37,15 +37,9 @@ import threading
 import time
 import warnings
 
-from gi.repository import GLib
 
 from . import bottle
-
-try:
-	from . import servicediscovery
-except ImportError:
-	servicediscovery = None
-	warnings.warn("avahi module is not available, disabling service discovery...")
+from . import servicediscovery
 
 #
 # =============================================================================
@@ -117,21 +111,20 @@ class HTTPServers(list):
 	bottle_app should be a Bottle instance.  If bottle_app is None (the
 	default) then the current default Bottle application is used.
 	"""
-	def __init__(self, port = 0, bottle_app = None, service_name = "www", service_domain = None, service_properties = None, verbose = False):
+	def __init__(self, port = 0, bottle_app = None, service_name = "www", service_domain = None, service_properties = None, verbose = False, service_discovery = True):
 		if bottle_app is None:
 			bottle_app = bottle.default_app()
 		self.verbose = verbose
-		if servicediscovery:
-			try:
-				self.service_publisher = servicediscovery.Publisher().__enter__()
-			except GLib.Error:
-				self.service_publisher = None
-				warnings.warn("could not connect to avahi-daemon, disabling service discovery...")
+		self.service_discovery = service_discovery
+		if self.service_discovery:
+			self.service_publisher = servicediscovery.Publisher().__enter__()
+		else:
+			warnings.warn("disabling service discovery, this web server won't be able to advertise the location of the services it provides.")
 		for (ignored, ignored, ignored, ignored, (host, port)) in socket.getaddrinfo(None, port, socket.AF_INET, socket.SOCK_STREAM, 0, socket.AI_NUMERICHOST | socket.AI_PASSIVE):
 			httpd = HTTPDServer(host, port, bottle_app, verbose = verbose).__enter__()
 			if verbose:
 				print >>sys.stderr, "advertising http server \"%s\" on http://%s:%d ..." % (service_name, httpd.host, httpd.port),
-			if servicediscovery and self.service_publisher:
+			if self.service_discovery:
 				service = self.service_publisher.add_service(
 					sname = service_name,
 					sdomain = service_domain,
@@ -146,14 +139,14 @@ class HTTPServers(list):
 			self.append((httpd, service))
 		if not self:
 			raise ValueError("unable to start servers%s" % (" on port %d" % port if port != 0 else ""))
-		if servicediscovery and self.service_publisher:
+		if self.service_discovery:
 			self.service_publisher.commit()
 
 	def __del__(self):
 		if self.verbose:
 			print >>sys.stderr, "de-advertising http server(s) ...",
 		try:
-			if servicediscovery and self.service_publisher:
+			if self.service_discovery:
 				self.service_publisher.__exit__(None, None, None)
 		except Exception as e:
 			if self.verbose: