diff --git a/gstlal-burst/bin/gstlal_cs_triggergen b/gstlal-burst/bin/gstlal_cs_triggergen
index e6b780a16568a11c070fff9e5389c4cfffd75b43..f941d51f62d286e8ba79fe22738693eb244c94a9 100755
--- a/gstlal-burst/bin/gstlal_cs_triggergen
+++ b/gstlal-burst/bin/gstlal_cs_triggergen
@@ -574,8 +574,8 @@ handler.flush()
 
 
 # write triggers & coinc events to XML file
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
 
 # also write rankingstat object to an XML file
 xmldoc_rankingstat.childNodes[-1].appendChild(rankingstat.to_xml())
-ligolw_utils.write_filename(xmldoc_rankingstat, options.rankingstat_output, gz = (options.rankingstat_output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc_rankingstat, options.rankingstat_output, verbose = options.verbose)
diff --git a/gstlal-burst/python/excesspower/parts.py b/gstlal-burst/python/excesspower/parts.py
index 6cce98ccd0a9634776f18a13a9d7361d90f80a1f..b488eeba21318600744d1bad9986a19a8aedb31a 100644
--- a/gstlal-burst/python/excesspower/parts.py
+++ b/gstlal-burst/python/excesspower/parts.py
@@ -398,8 +398,7 @@ class EPHandler(Handler):
 		self.lock.acquire()
 		ligolw_utils.write_filename(self.filter_xml[output], 
 			output, 
-			verbose = verbose,
-		    gz = (output or "stdout").endswith(".gz"))
+			verbose = verbose)
 		self.lock.release()
 
 		# Just get the table we want
@@ -700,7 +699,7 @@ class EPHandler(Handler):
 
 		# write the new distribution stats to disk
 		self.lock.acquire()
-		ligolw_utils.write_filename(output, filename, verbose = self.verbose, gz = (filename or "stdout").endswith(".gz"), trap_signals = None)
+		ligolw_utils.write_filename(output, filename, verbose = self.verbose, trap_signals = None)
 		self.lock.release()
 
 		# Keep track of the output files we make for later convience
diff --git a/gstlal-burst/python/string/lalapps_string_calc_rank_pdfs.py b/gstlal-burst/python/string/lalapps_string_calc_rank_pdfs.py
index 8160c169a7f70d58000640e183f3b9a5ab44c464..5c839bdc9f55362745883a5ee9145cae1897f1e8 100644
--- a/gstlal-burst/python/string/lalapps_string_calc_rank_pdfs.py
+++ b/gstlal-burst/python/string/lalapps_string_calc_rank_pdfs.py
@@ -122,4 +122,4 @@ xmldoc.appendChild(ligolw.LIGO_LW())
 xmldoc.childNodes[-1].appendChild(rankingstatpdf.to_xml())
 process = ligolw_process.register_to_xmldoc(xmldoc, program = u"lalapps_string_meas_likelihood", paramdict = paramdict, version = __version__, cvs_repository = "lscsoft", cvs_entry_time = __date__, comment = u"")
 ligolw_process.set_process_end_time(process)
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
diff --git a/gstlal-burst/python/string/lalapps_string_compute_fapfar.py b/gstlal-burst/python/string/lalapps_string_compute_fapfar.py
index 208d1d8bc60a84f05e9b759923098b6c02f7a090..85f8333fc829a3742fe42f132a4bef16f609df4f 100644
--- a/gstlal-burst/python/string/lalapps_string_compute_fapfar.py
+++ b/gstlal-burst/python/string/lalapps_string_compute_fapfar.py
@@ -205,7 +205,7 @@ xmldoc.appendChild(ligolw.LIGO_LW())
 xmldoc.childNodes[-1].appendChild(rankingstatpdf.to_xml())
 # FIXME dont hard code
 outname = "post_STRING_RANKINGSTATPDF.xml.gz"
-ligolw_utils.write_filename(xmldoc, outname, gz = outname.endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, outname, verbose = options.verbose)
 
 if options.verbose:
 	print >>sys.stderr, "done"
diff --git a/gstlal-burst/python/string/lalapps_string_meas_likelihood.py b/gstlal-burst/python/string/lalapps_string_meas_likelihood.py
index 24b6f53feb1207b1016256a829e3378424fc5e9a..d5934c4c92119b08276aadcc4fc009c587265179 100644
--- a/gstlal-burst/python/string/lalapps_string_meas_likelihood.py
+++ b/gstlal-burst/python/string/lalapps_string_meas_likelihood.py
@@ -244,4 +244,4 @@ if options.T010150:
 	filename = "%s.xml.gz" % T010150_basename(segs.keys(), options.T010150, segs.extent_all())
 else:
 	filename = options.output
-ligolw_utils.write_filename(xmldoc, filename, verbose = options.verbose, gz = (filename or "stdout").endswith(".gz"))
+ligolw_utils.write_filename(xmldoc, filename, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_bank_splitter b/gstlal-inspiral/bin/gstlal_bank_splitter
index fc6733982d1d26a209b05d70ceb888d49e489a91..6f2fb7e7d705ee27a4718d577707d743c2bd635c 100755
--- a/gstlal-inspiral/bin/gstlal_bank_splitter
+++ b/gstlal-inspiral/bin/gstlal_bank_splitter
@@ -165,7 +165,7 @@ if options.sort_by == "bandwidth":
 # FIXME
 #process = ligolw_process.register_to_xmldoc(xmldoc, program = "gstlal_bank_splitter", paramdict = options.__dict__, comment = "Assign template IDs")
 if options.output_full_bank_file is not None:
-	ligolw_utils.write_filename(xmldoc, options.output_full_bank_file, gz = options.output_full_bank_file.endswith('gz'), verbose = options.verbose)
+	ligolw_utils.write_filename(xmldoc, options.output_full_bank_file, verbose = options.verbose)
 
 # Bin by Chi
 sngl_inspiral_table.sort(key = lambda row: spawaveform.computechi(row.mass1, row.mass2, row.spin1z, row.spin2z))
@@ -246,7 +246,7 @@ with open(options.output_cache, "w") as output_cache_file:
 			output_cache_file.write("%s\n" % CacheEntry.from_T050017("file://localhost%s" % os.path.abspath(output)))
 		else:
 			svd_caches.append((bank_count, "%s\n" % CacheEntry.from_T050017("file://localhost%s" % os.path.abspath(output))))
-		ligolw_utils.write_filename(xmldoc, output, gz = output.endswith('gz'), verbose = options.verbose)
+		ligolw_utils.write_filename(xmldoc, output, verbose = options.verbose)
 
 	if options.write_svd_caches:
 		cache_path = os.path.join(options.output_path, "cache")
diff --git a/gstlal-inspiral/bin/gstlal_compute_far_from_snr_chisq_histograms b/gstlal-inspiral/bin/gstlal_compute_far_from_snr_chisq_histograms
index eb1a4cf687c51e0a0423dc49f1aac805419f4c79..52b2734001ffd4ae26e83a24329bdca4edb33424 100755
--- a/gstlal-inspiral/bin/gstlal_compute_far_from_snr_chisq_histograms
+++ b/gstlal-inspiral/bin/gstlal_compute_far_from_snr_chisq_histograms
@@ -229,7 +229,7 @@ far.gen_likelihood_control_doc(xmldoc, None, rankingstatpdf)
 ligolw_process.set_process_end_time(process)
 
 outname = "post_%s" % options.background_bins_file
-ligolw_utils.write_filename(xmldoc, outname, gz = outname.endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, outname, verbose = options.verbose)
 
 if options.verbose:
 	print("done", file=sys.stderr)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral b/gstlal-inspiral/bin/gstlal_inspiral
index c82bd3e6062b2d772ab0b24100f41168c784f3d0..4ea30a39ab688d0ab2b2d775522b821cdbf4fc79 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral
+++ b/gstlal-inspiral/bin/gstlal_inspiral
@@ -733,7 +733,7 @@ for output_file_number, (svd_bank_url_dict, output_url, ranking_stat_output_url,
 		xmldoc.appendChild(ligolw.LIGO_LW())
 		map(xmldoc.childNodes[-1].appendChild(sngl_inspiral_table.copy()).append, sngl_inspiral_table)
 		output = StringIO.StringIO()
-		ligolw_utils.write_fileobj(xmldoc, output, gz = True)
+		ligolw_utils.write_fileobj(xmldoc, output, compress = "gz")
 		outstr = output.getvalue()
 		output.close()
 		return outstr
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_add_template_ids b/gstlal-inspiral/bin/gstlal_inspiral_add_template_ids
index 60676575d7d7992b47d163624610043a9092fdd8..094a16aae7714a2b236f76baa87d39d71fad9f9a 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_add_template_ids
+++ b/gstlal-inspiral/bin/gstlal_inspiral_add_template_ids
@@ -57,4 +57,4 @@ next_id = iter(ids).__next__
 for fname, xmldoc in documents:
 	for row in lsctables.SnglInspiralTable.get_table(xmldoc):
 		row.template_id = next_id()
-	ligolw_utils.write_filename(xmldoc, fname, gz = fname.endswith('gz'), verbose = True)
+	ligolw_utils.write_filename(xmldoc, fname, verbose = True)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_bank_splitter b/gstlal-inspiral/bin/gstlal_inspiral_bank_splitter
index cdb7ef45e52a95011b57883f7c15391c44748f95..8495ab5b6482f45dc2fd0e271a5aad87b27e21d6 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_bank_splitter
+++ b/gstlal-inspiral/bin/gstlal_inspiral_bank_splitter
@@ -164,7 +164,7 @@ for count, row in enumerate(sngl_inspiral_table):
 # FIXME
 #process = ligolw_process.register_to_xmldoc(xmldoc, program = "gstlal_bank_splitter", paramdict = options.__dict__, comment = "Assign template IDs")
 if options.output_full_bank_file is not None:
-	ligolw_utils.write_filename(xmldoc, options.output_full_bank_file, gz = options.output_full_bank_file.endswith('gz'), verbose = options.verbose)
+	ligolw_utils.write_filename(xmldoc, options.output_full_bank_file, verbose = options.verbose)
 
 # Bin by Chi
 sngl_inspiral_table.sort(key = lambda row: spawaveform.computechi(row.mass1, row.mass2, row.spin1z, row.spin2z))
@@ -226,7 +226,7 @@ for bank_count, (_, rows) in enumerate(outputrows):
 	output = dagparts.T050017_filename(options.instrument, "%04d_GSTLAL_SPLIT_BANK" % bank_count, (0, 0), ".xml.gz", path = options.output_path)
 	metadata[output] = rows
 	svd_dirs.append(output)
-	ligolw_utils.write_filename(xmldoc, output, gz = output.endswith('gz'), verbose = options.verbose)
+	ligolw_utils.write_filename(xmldoc, output, verbose = options.verbose)
 
 svd_groups = list(inspiral_pipe.group(svd_dirs, options.num_banks))
 outjson = {}
@@ -251,7 +251,7 @@ for n, svd in enumerate(svd_groups):
 		shutil.move(split_file, outfile)
 		xmldoc = ligolw_utils.load_url(outfile, contenthandler = LIGOLWContentHandler, verbose = options.verbose)
 		process = ligolw_process.register_to_xmldoc(xmldoc, program = "gstlal_inspiral_bank_splitter", paramdict = {"clipleft": clipleft, "clipright": clipright, "bank-id": "%d_%d" % (n,m)}, comment = "Add some extra metadata for the SVD")
-		ligolw_utils.write_filename(xmldoc, outfile, gz = outfile.endswith('gz'), verbose = options.verbose)
+		ligolw_utils.write_filename(xmldoc, outfile, verbose = options.verbose)
 
 	# some gymnastics to get the fiducial horizon template in the LR calculation
 	rows = metadata[svd[0]][clipleft:-clipright]
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_calc_likelihood b/gstlal-inspiral/bin/gstlal_inspiral_calc_likelihood
index 81cb017e9667c86d529a4ab80e2829f529d1e4f9..4073bf079997979a877d995dc50198434f110970 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_calc_likelihood
+++ b/gstlal-inspiral/bin/gstlal_inspiral_calc_likelihood
@@ -237,7 +237,7 @@ for n, url in enumerate(urls, 1):
 	# clean up.
 	#
 
-	ligolw_utils.write_url(xmldoc, url, gz = (url or "stdout").endswith(".gz"), verbose = options.verbose)
+	ligolw_utils.write_url(xmldoc, url, verbose = options.verbose)
 	xmldoc.unlink()
 
 
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_calc_rank_pdfs b/gstlal-inspiral/bin/gstlal_inspiral_calc_rank_pdfs
index 8be9ba576fe467dd829d243d8a51cb8fc77f26a0..11e08a265e6b1acb2191066c30d1730696ab6342 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_calc_rank_pdfs
+++ b/gstlal-inspiral/bin/gstlal_inspiral_calc_rank_pdfs
@@ -138,4 +138,4 @@ xmldoc.appendChild(ligolw.LIGO_LW())
 process = ligolw_process.register_to_xmldoc(xmldoc, u"gstlal_inspiral_calc_rank_pdfs", paramdict = paramdict, ifos = rankingstat.instruments)
 far.gen_likelihood_control_doc(xmldoc, rankingstat, rankingstatpdf)
 ligolw_process.set_process_end_time(process)
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor b/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor
index 8e30fa5ce748997f8c648ef3cf7b90c65f6d28ed..97c3a00f0119f20351aeb687f841aa28222fcdaf 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor
+++ b/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor
@@ -140,4 +140,4 @@ for (cid, time, ifos) in cids:
 			setattr(fullrow, attr, getattr(thisrow, attr))
 		sngl.append(fullrow)
 
-	ligolw_utils.write_filename(xmldocmain, '%s-GSTLAL_AllSky-%d-0.xml.gz' % (ifos.replace(",",""), time), gz=True, verbose=True)
+	ligolw_utils.write_filename(xmldocmain, '%s-GSTLAL_AllSky-%d-0.xml.gz' % (ifos.replace(",",""), time), verbose=True)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor_dag b/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor_dag
index 453f41dc5b0cf1edc125b4a587917038d7da1ef6..9eeecbaa91765911dbd76fd02d3f87fcdc199b79 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor_dag
+++ b/gstlal-inspiral/bin/gstlal_inspiral_coinc_extractor_dag
@@ -330,7 +330,7 @@ def new_inj_file(row, output):
 	sim_inspiral_table = lsctables.New(lsctables.SimInspiralTable)
 	lw.appendChild(sim_inspiral_table)
 	sim_inspiral_table.append(row)
-	ligolw_utils.write_filename(xmldoc, output, gz = output.endswith('gz'))
+	ligolw_utils.write_filename(xmldoc, output)
 
 def new_file(row, output):
         xmldoc = ligolw.Document()
@@ -338,7 +338,7 @@ def new_file(row, output):
         inspiral_table = lsctables.New(lsctables.SnglInspiralTable)
         lw.appendChild(inspiral_table)
         inspiral_table.append(row)
-        ligolw_utils.write_filename(xmldoc, output, gz = output.endswith('gz'))
+        ligolw_utils.write_filename(xmldoc, output)
 
 
 try:
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_compress_ranking_stat b/gstlal-inspiral/bin/gstlal_inspiral_compress_ranking_stat
index 37cc89c058a6759c7331222ef86bdda9e87e777d..9218257ea1c2235618722a5dc0ced30d9db21bfa 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_compress_ranking_stat
+++ b/gstlal-inspiral/bin/gstlal_inspiral_compress_ranking_stat
@@ -159,4 +159,4 @@ for filename in filenames:
 	# write to disk
 	#
 
-	ligolw_utils.write_filename(xmldoc, filename, gz = filename.endswith(".gz"), verbose = options.verbose)
+	ligolw_utils.write_filename(xmldoc, filename, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_create_prior_diststats b/gstlal-inspiral/bin/gstlal_inspiral_create_prior_diststats
index 64d282ba003691d2461ebb6587b6f8c227776b6e..95705627789de9f4fcfa8838e7353ba1f2aa4078 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_create_prior_diststats
+++ b/gstlal-inspiral/bin/gstlal_inspiral_create_prior_diststats
@@ -194,4 +194,4 @@ far.gen_likelihood_control_doc(xmldoc, rankingstat, None)
 
 
 ligolw_process.set_process_end_time(process)
-ligolw_utils.write_filename(xmldoc, options.write_likelihood, gz = options.write_likelihood.endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.write_likelihood, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_grid_bank b/gstlal-inspiral/bin/gstlal_inspiral_grid_bank
index f97c7f8b7ae68d569a36c9e4e41c3054afda0dc4..c162c13d1cce0e7c320a1fa80779d0e85068724f 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_grid_bank
+++ b/gstlal-inspiral/bin/gstlal_inspiral_grid_bank
@@ -159,7 +159,7 @@ for n, (m1, m2, s1, s2, dur) in enumerate(zip(m1s, m2s, s1s, s2s, durs)):
 	row.process_id = process.process_id
 	tbl.append(row)
 
-ligolw_utils.write_filename(xmldoc, options.output_name,  gz=options.output_name.endswith("gz"))
+ligolw_utils.write_filename(xmldoc, options.output_name)
 
 import matplotlib
 matplotlib.use('agg')
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_injection_template_match b/gstlal-inspiral/bin/gstlal_inspiral_injection_template_match
index 97c6e394217444d2674fbf9e8c0133ea4b66d165..78f123e9320b79e8e103b9d488d97f59d0712223 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_injection_template_match
+++ b/gstlal-inspiral/bin/gstlal_inspiral_injection_template_match
@@ -191,4 +191,4 @@ for inj in tqdm(injs, desc = "matching inj", disable = not options.verbose):
 
 
 ligolw_process.set_process_end_time(process)
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_lvalert_sim_equiv b/gstlal-inspiral/bin/gstlal_inspiral_lvalert_sim_equiv
index 0c0eadaaaaf91c5f726b5d5ac820f117e4be1e08..391c8613764a718b72b8aca2b5035a835a2af125 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_lvalert_sim_equiv
+++ b/gstlal-inspiral/bin/gstlal_inspiral_lvalert_sim_equiv
@@ -243,7 +243,7 @@ for graceid in graceids:
 	filename = "%s_sim_equiv.xml.gz" % graceid
 	if options.no_upload:
 		logging.info("writing %s ..." % filename)
-		ligolw_utils.write_filename(xmldoc, filename, gz = True, verbose = options.verbose)
+		ligolw_utils.write_filename(xmldoc, filename, compress = "gz", verbose = options.verbose)
 	else:
 		lvalert_helper.upload_xmldoc(gracedb_client, graceid, filename, xmldoc, log_message = "injections to emulate triggers", tagname = "pe")
 	logging.info("finished processing %s" % graceid)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_make_snr_pdf b/gstlal-inspiral/bin/gstlal_inspiral_make_snr_pdf
index c76a1812db74ce9135b06c3c9ed287f60824b5cf..2651db7f227a76e2f8708941224ed1c749a474f2 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_make_snr_pdf
+++ b/gstlal-inspiral/bin/gstlal_inspiral_make_snr_pdf
@@ -272,4 +272,4 @@ xmldoc = ligolw.Document()
 xmldoc.appendChild(ligolw.LIGO_LW())
 process = ligolw_process.register_to_xmldoc(xmldoc, "gstlal_inspiral_make_snr_pdf", processparams, ifos = options.instruments)
 xmldoc.childNodes[0].appendChild(snrpdf.to_xml())
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_marginalize_likelihood b/gstlal-inspiral/bin/gstlal_inspiral_marginalize_likelihood
index b21fed89cc9da98e24fb4d4c8e7465da791fd58a..fd07229b6648009f4ed33b0aff82956010c0fb3e 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_marginalize_likelihood
+++ b/gstlal-inspiral/bin/gstlal_inspiral_marginalize_likelihood
@@ -148,4 +148,4 @@ if options.marginalize == "ranking-stat":
 else:
 	far.gen_likelihood_control_doc(xmldoc, None, marginalized)
 ligolw_process.set_process_end_time(process)
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_rate_posterior b/gstlal-inspiral/bin/gstlal_inspiral_rate_posterior
index 38ec8cd37a305228081d649d5f97b790b5479236..e75dcb59ed923141f35f6096b7c486f42352206d 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_rate_posterior
+++ b/gstlal-inspiral/bin/gstlal_inspiral_rate_posterior
@@ -334,7 +334,7 @@ xmldoc.appendChild(ligolw.LIGO_LW())
 process = ligolw_process.register_to_xmldoc(xmldoc, process_name, paramdict)
 xmldoc.childNodes[-1].appendChild(signal_rate_ln_pdf.to_xml(u"%s:signal_ln_pdf" % process_name))
 xmldoc.childNodes[-1].appendChild(noise_rate_ln_pdf.to_xml(u"%s:noise_ln_pdf" % process_name))
-ligolw_utils.write_filename(xmldoc, filename, gz = (filename or stdout).endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, filename, verbose = options.verbose)
 
 
 fig = plot_rates(signal_rate_ln_pdf, credible_intervals = credible_intervals)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_reset_likelihood b/gstlal-inspiral/bin/gstlal_inspiral_reset_likelihood
index 23b1b6c179722cdf85a0a12520c57a0e6f593275..c4a0e71b7e609bd95ef2c06253c041adb76b8e56 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_reset_likelihood
+++ b/gstlal-inspiral/bin/gstlal_inspiral_reset_likelihood
@@ -112,11 +112,11 @@ xmldoc = ligolw.Document()
 xmldoc.appendChild(ligolw.LIGO_LW())
 process = ligolw_process.register_to_xmldoc(xmldoc, sys.argv[0], ifos = like_cpd.instruments, paramdict = process_params)
 far.gen_likelihood_control_doc(xmldoc, like_cpd, like_rd)
-ligolw_utils.write_filename(xmldoc, options.background_ranking_file, gz = options.background_ranking_file.endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.background_ranking_file, verbose = options.verbose)
 
 # write out the zerolag file
 xmldoc = ligolw.Document()
 xmldoc.appendChild(ligolw.LIGO_LW())
 process = ligolw_process.register_to_xmldoc(xmldoc, sys.argv[0], ifos = like_cpd.instruments, paramdict = process_params)
 far.gen_likelihood_control_doc(xmldoc, None, zlike_rd)
-ligolw_utils.write_filename(xmldoc, options.zerolag_ranking_file, gz = options.zerolag_ranking_file.endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.zerolag_ranking_file, verbose = options.verbose)
diff --git a/gstlal-inspiral/bin/gstlal_inspiral_reset_zerolag_counts b/gstlal-inspiral/bin/gstlal_inspiral_reset_zerolag_counts
index 9abaa4037e8aa33815dd87d0879385f2536c8b87..2f8adafb45d03186730ed6a256bc1146f7f6c34e 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_reset_zerolag_counts
+++ b/gstlal-inspiral/bin/gstlal_inspiral_reset_zerolag_counts
@@ -35,4 +35,4 @@ xmldoc.appendChild(lw.ligolw.LIGO_LW())
 process = ligolw_process.register_to_xmldoc(xmldoc, sys.argv[0], paramdict = {})
 far.gen_likelihood_control_doc(xmldoc, None, zlpdf)
 ligolw_process.set_process_end_time(process)
-ligolw_utils.write_url(xmldoc, fname, gz = fname.endswith("gz"), verbose = True, trap_signals = None)
+ligolw_utils.write_url(xmldoc, fname, verbose = True, trap_signals = None)
diff --git a/gstlal-inspiral/bin/gstlal_ll_inspiral_event_plotter b/gstlal-inspiral/bin/gstlal_ll_inspiral_event_plotter
index 01951d5c3e3e8cd060a9cce0dae36810adac9755..9fbbe2cfc6735ec75e4918f89c493e9e487b06cf 100755
--- a/gstlal-inspiral/bin/gstlal_ll_inspiral_event_plotter
+++ b/gstlal-inspiral/bin/gstlal_ll_inspiral_event_plotter
@@ -169,7 +169,7 @@ class EventPlotter(events.EventProcessor):
 
 		time = LIGOTimeGPS(payload['time'], payload['time_ns'])
 		coinc_fileobj = io.StringIO(payload['coinc'])
-		xmldoc = ligolw_utils.load_fileobj(coinc_fileobj, gz=False, contenthandler=ligolwcontenthandler)
+		xmldoc = ligolw_utils.load_fileobj(coinc_fileobj, contenthandler=ligolwcontenthandler)
 		coinc_fileobj.close()
 		sngl_inspiral_table = lsctables.SnglInspiralTable.get_table(xmldoc)
 		bank_bin = '{:04}'.format(int(sngl_inspiral_table[0].Gamma1))
@@ -279,7 +279,7 @@ class EventPlotter(events.EventProcessor):
 
 	def upload_ranking_data(self, event):
 		ranking_fobj = io.StringIO()
-		ligolw_utils.write_fileobj(ligolw_utils.load_filename(event['ranking_data_path'], contenthandler = far.RankingStat.LIGOLWContentHandler), ranking_fobj, gz = True)
+		ligolw_utils.write_fileobj(ligolw_utils.load_filename(event['ranking_data_path'], contenthandler = far.RankingStat.LIGOLWContentHandler), ranking_fobj, compress = "gz")
 		self.upload_file('ranking statistic PDFs', 'ranking_data.xml.gz', 'ranking_statistic', ranking_fobj.getvalue(), event['gid'])
 		ranking_fobj.close()
 
diff --git a/gstlal-inspiral/bin/gstlal_ll_inspiral_trigger_counter b/gstlal-inspiral/bin/gstlal_ll_inspiral_trigger_counter
index edf7291e9d74710e957564d6195b74dd4faf845c..3df403b7c4d413240cd33b4eb1d90a23f501321b 100755
--- a/gstlal-inspiral/bin/gstlal_ll_inspiral_trigger_counter
+++ b/gstlal-inspiral/bin/gstlal_ll_inspiral_trigger_counter
@@ -121,7 +121,7 @@ class ZeroLagCounts(object):
 			zlpdf = self.zerolag_rankingstatpdf.copy()
 			self.__add_counts_to_zerolag_pdf(zlpdf)
 			output = io.BytesIO()
-			ligolw_utils.write_fileobj(self.__get_zerolag_rankingstatpdf_xmldoc(zlpdf), output, gz = False)
+			ligolw_utils.write_fileobj(self.__get_zerolag_rankingstatpdf_xmldoc(zlpdf), output)
 			outstr = output.getvalue()
 			output.close()
 			return outstr
@@ -133,7 +133,7 @@ class ZeroLagCounts(object):
 		with self.lock:
 			zlpdf = self.zerolag_rankingstatpdf.copy()
 			self.__add_counts_to_zerolag_pdf(zlpdf)
-			ligolw_utils.write_url(self.__get_zerolag_rankingstatpdf_xmldoc(zlpdf), fname, gz = fname.endswith(".gz"), verbose = verbose, trap_signals = None)
+			ligolw_utils.write_url(self.__get_zerolag_rankingstatpdf_xmldoc(zlpdf), fname, verbose = verbose, trap_signals = None)
 
 
 # Read command line options
diff --git a/gstlal-inspiral/bin/gstlal_svd_bank_calc_psd b/gstlal-inspiral/bin/gstlal_svd_bank_calc_psd
index ec96e228ad3107fe193a283bc8f8f1a9992513b2..4d996a58c2951eb9f5385b692b55a4f56b95a991 100755
--- a/gstlal-inspiral/bin/gstlal_svd_bank_calc_psd
+++ b/gstlal-inspiral/bin/gstlal_svd_bank_calc_psd
@@ -91,4 +91,4 @@ for svd_bank_path in options.svd_bank_files:
 	psds.update({bank.sngl_inspiral_table[0].ifo: bank.processed_psd})
 
 # Write to file
-ligolw_utils.write_filename(lalseries.make_psd_xmldoc(psds), options.write_psd, gz = (options.write_psd or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(lalseries.make_psd_xmldoc(psds), options.write_psd, verbose = options.verbose)
diff --git a/gstlal-inspiral/python/inspiral.py b/gstlal-inspiral/python/inspiral.py
index 94d541495912ca872495d37e468698316f25689e..0e5cfd9140500623cb76076883a14ed756b150bd 100644
--- a/gstlal-inspiral/python/inspiral.py
+++ b/gstlal-inspiral/python/inspiral.py
@@ -156,7 +156,7 @@ def parse_bank_files(svd_banks, verbose, snr_threshold = None):
 			# FIXME if this table reference is from a DB this
 			# is a problem (but it almost certainly isn't)
 			xmldoc.appendChild(ligolw.LIGO_LW()).appendChild(bank.sngl_inspiral_table.copy()).extend(bank.sngl_inspiral_table)
-			ligolw_utils.write_filename(xmldoc, bank.template_bank_filename, gz = True, verbose = verbose)
+			ligolw_utils.write_filename(xmldoc, bank.template_bank_filename, verbose = verbose)
 			xmldoc.unlink()	# help garbage collector
 			bank.logname = "%sbank%d" % (instrument, n)
 			banks.setdefault(instrument, []).append(bank)
@@ -412,7 +412,7 @@ class CoincsDocument(object):
 			self.working_filename.__exit__(None, None, None)
 		else:
 			self.sngl_inspiral_table.sort(key = lambda row: (row.end, row.ifo))
-			ligolw_utils.write_url(self.xmldoc, self.url, gz = (self.url or "stdout").endswith(".gz"), verbose = verbose, trap_signals = None)
+			ligolw_utils.write_url(self.xmldoc, self.url, verbose = verbose, trap_signals = None)
 		# can no longer be used
 		self.xmldoc.unlink()
 		del self.xmldoc
@@ -566,7 +566,7 @@ class GracedBWrapper(object):
 		if not gracedb_ids:
 			return
 		fobj = io.StringIO()
-		ligolw_utils.write_fileobj(xmldoc, fobj, gz = filename.endswith(".gz"))
+		ligolw_utils.write_fileobj(xmldoc, fobj)
 		self.__upload_aux_data(message, filename, tag, fobj.getvalue(), gracedb_ids)
 		del fobj
 
@@ -806,7 +806,7 @@ class GracedBWrapper(object):
 			background_bin = int(sngl_inspiral_table[0].Gamma1)
 
 			# serialize to XML
-			ligolw_utils.write_fileobj(xmldoc, message, gz = False)
+			ligolw_utils.write_fileobj(xmldoc, message)
 
 			# calculate p(astro)
 			p_astro = get_p_astro_func(
@@ -820,7 +820,7 @@ class GracedBWrapper(object):
 			# send event data to kafka
 			if self.client:
 				psd_fobj = io.StringIO()
-				ligolw_utils.write_fileobj(lalseries.make_psd_xmldoc(psddict), psd_fobj, gz = False)
+				ligolw_utils.write_fileobj(lalseries.make_psd_xmldoc(psddict), psd_fobj)
 				self.client.write(
 					"events",
 					{
@@ -837,7 +837,7 @@ class GracedBWrapper(object):
 				# Write ranking data to disk and send path to kafka
 				rankingstat_filename = os.path.join(gracedb_uploads_gps_dir, "%s-%s_%04d_RankingData-%d-%d.xml.gz" % (instruments, description, background_bin, end_time, 1))
 				with open(rankingstat_filename, "w") as fileobj:
-					ligolw_utils.write_fileobj(rankingstat_xmldoc_func(), fileobj, gz = True)
+					ligolw_utils.write_fileobj(rankingstat_xmldoc_func(), fileobj, compress = "gz")
 
 				self.client.write(
 					"ranking_stat",
@@ -877,7 +877,7 @@ class GracedBWrapper(object):
 			# save event to disk
 			message.close()
 			with open(os.path.join(gracedb_uploads_gps_dir, filename), "w") as fileobj:
-				ligolw_utils.write_fileobj(xmldoc, fileobj, gz = False)
+				ligolw_utils.write_fileobj(xmldoc, fileobj)
 
 			xmldoc.unlink()
 
diff --git a/gstlal-inspiral/python/lloidhandler.py b/gstlal-inspiral/python/lloidhandler.py
index 065ea714b52e0b61155eef8de5d042b7e985c873..342963345b976cedf0353ae88e547da0ff8c6812 100644
--- a/gstlal-inspiral/python/lloidhandler.py
+++ b/gstlal-inspiral/python/lloidhandler.py
@@ -592,7 +592,7 @@ class SegmentsTracker(object):
 			# disk
 			fname = self.__T050017_filename("%s_SEGMENTS" % tag, "xml.gz")
 			fname = os.path.join(subdir_from_T050017_filename(fname), fname)
-			ligolw_utils.write_filename(self.gen_segments_xmldoc(), fname, gz = fname.endswith('.gz'), verbose = self.verbose, trap_signals = None)
+			ligolw_utils.write_filename(self.gen_segments_xmldoc(), fname, verbose = self.verbose, trap_signals = None)
 
 			# continue with the (clipped) copy
 			self.seglistdicts = seglistdicts
@@ -1434,7 +1434,7 @@ class Handler(simplehandler.Handler):
 	def web_get_rankingstat(self):
 		with self.lock:
 			output = io.BytesIO()
-			ligolw_utils.write_fileobj(self.__get_rankingstat_xmldoc(), output, gz=False)
+			ligolw_utils.write_fileobj(self.__get_rankingstat_xmldoc(), output)
 			outstr = output.getvalue()
 			output.close()
 			return outstr
@@ -1452,7 +1452,7 @@ class Handler(simplehandler.Handler):
 	def web_get_zerolag_rankingstatpdf(self):
 		with self.lock:
 			output = io.BytesIO()
-			ligolw_utils.write_fileobj(self.__get_zerolag_rankingstatpdf_xmldoc(), output, gz=False)
+			ligolw_utils.write_fileobj(self.__get_zerolag_rankingstatpdf_xmldoc(), output)
 			outstr = output.getvalue()
 			output.close()
 			return outstr
@@ -1527,7 +1527,7 @@ class Handler(simplehandler.Handler):
 
 	def __write_ranking_stat_url(self, url, description, snapshot = False, verbose = False):
 		# write the ranking statistic file.
-		ligolw_utils.write_url(self.__get_rankingstat_xmldoc(), url, gz = (url or "stdout").endswith(".gz"), verbose = verbose, trap_signals = None)
+		ligolw_utils.write_url(self.__get_rankingstat_xmldoc(), url, verbose = verbose, trap_signals = None)
 		# Snapshots get their own custom file and path
 		if snapshot:
 			fname = self.segmentstracker.T050017_filename(description + '_DISTSTATS', 'xml.gz')
@@ -1548,7 +1548,7 @@ class Handler(simplehandler.Handler):
 			if self.ranking_stat_output_url is not None:
 				self.__write_ranking_stat_url(self.ranking_stat_output_url, description, snapshot = True, verbose = verbose)
 			if self.zerolag_rankingstatpdf_url is not None:
-				ligolw_utils.write_url(self.__get_zerolag_rankingstatpdf_xmldoc(), self.zerolag_rankingstatpdf_url, gz = (self.zerolag_rankingstatpdf_url or "stdout").endswith(".gz"), verbose = verbose, trap_signals = None)
+				ligolw_utils.write_url(self.__get_zerolag_rankingstatpdf_xmldoc(), self.zerolag_rankingstatpdf_url, verbose = verbose, trap_signals = None)
 			coincs_document = self.coincs_document.get_another()
 			self.__write_output_url(url = fname, verbose = verbose)
 			self.coincs_document = coincs_document
diff --git a/gstlal-inspiral/python/lvalert_helper.py b/gstlal-inspiral/python/lvalert_helper.py
index e28ed24d08924817429664b7c473c094c4994568..99a5d499a1c57c644277e1c8e13a0be0b9617eae 100755
--- a/gstlal-inspiral/python/lvalert_helper.py
+++ b/gstlal-inspiral/python/lvalert_helper.py
@@ -90,7 +90,7 @@ def upload_file(gracedb_client, graceid, filename, log_message = "A file", tagna
 def upload_xmldoc(gracedb_client, graceid, filename, xmldoc, log_message = "A file", tagname = None):
 	logging.info("uploading \"%s\" for %s" % (filename, graceid))
 	output = io.StringIO()
-	ligolw_utils.write_fileobj(xmldoc, output, gz = filename.endswith(".gz"))
+	ligolw_utils.write_fileobj(xmldoc, output)
 	response = gracedb_client.writeLog(graceid, log_message, filename = filename, filecontents = output.getvalue(), tagname = tagname)
 	output.close()
 	if response.status != http.client.CREATED:
diff --git a/gstlal-inspiral/python/stats/inspiral_extrinsics.py b/gstlal-inspiral/python/stats/inspiral_extrinsics.py
index 2b9cce3b4abbd498a6489c84187e835268d2fb52..771ff510aef5ad285ee81ae1a5574959c7b6825a 100644
--- a/gstlal-inspiral/python/stats/inspiral_extrinsics.py
+++ b/gstlal-inspiral/python/stats/inspiral_extrinsics.py
@@ -865,7 +865,7 @@ class SNRPDF(object):
 	def load(cls, fileobj = None, verbose = False):
 		if fileobj is None:
 			fileobj = open(cls.DEFAULT_FILENAME)
-		return cls.from_xml(ligolw_utils.load_fileobj(fileobj, gz = True, contenthandler = cls.LIGOLWContentHandler))
+		return cls.from_xml(ligolw_utils.load_fileobj(fileobj, contenthandler = cls.LIGOLWContentHandler))
 
 
 #
diff --git a/gstlal-inspiral/python/svd_bank.py b/gstlal-inspiral/python/svd_bank.py
index 8c3ecfafd6084fd5bb77aa0eaf9f2ed97214d0ec..a1a6039bae6ec2f867e3843933b7f5f9dce0368c 100644
--- a/gstlal-inspiral/python/svd_bank.py
+++ b/gstlal-inspiral/python/svd_bank.py
@@ -362,7 +362,7 @@ def write_bank(filename, banks, psd_input, cliplefts = None, cliprights = None,
 	lal.series.make_psd_xmldoc({bank.sngl_inspiral_table[0].ifo: psd}, lw)
 
 	# Write to file
-	ligolw_utils.write_filename(xmldoc, filename, gz = filename.endswith('.gz'), verbose = verbose)
+	ligolw_utils.write_filename(xmldoc, filename, verbose = verbose)
 
 
 def read_banks(filename, contenthandler, verbose = False):
diff --git a/gstlal-inspiral/python/svd_bank_snr.py b/gstlal-inspiral/python/svd_bank_snr.py
index 5e803bb97707d5781984832c330c1e8ece68acab..7d46ab293680a274c6e61bf597f3a5c221ffd694 100644
--- a/gstlal-inspiral/python/svd_bank_snr.py
+++ b/gstlal-inspiral/python/svd_bank_snr.py
@@ -434,7 +434,7 @@ def write_simplified_sngl_inspiral_table(m1, m2, s1x, s1y, s1z, s2x, s2y, s2z, i
 	root.appendChild(ligolw_param.Param.from_pyvalue("approximant", approximant))
 
 	if filename is not None:
-		ligolw_utils.write_filename(xmldoc, filename, gz = filename.endswith("gz"))
+		ligolw_utils.write_filename(xmldoc, filename)
 
 	return xmldoc
 
@@ -570,7 +570,7 @@ def write_bank(filename, banks, verbose = False):
 		head.appendChild(ligolw_array.Array.build('autocorrelation_mask', bank.autocorrelation_mask))
 		head.appendChild(ligolw_array.Array.build('sigmasq', numpy.array(bank.sigmasq)))
 
-	ligolw_utils.write_filename(xmldoc, filename, gz = filename.endswith('.gz'), verbose = verbose)
+	ligolw_utils.write_filename(xmldoc, filename, verbose = verbose)
 
 def parse_bank_files(bank_urls, verbose = False):
 	"""Parse a dictionary of bank urls key by instrument into a dictionary of
@@ -619,7 +619,7 @@ def read_xmldoc(xmldoc, root_name = u"gstlal_inspiral_bank_SNRs"):
 
 # wrapper for writing snr series to URL
 def write_url(xmldoc, filename, verbose = False):
-	ligolw_utils.write_filename(xmldoc, filename, gz = filename.endswith(".gz"), verbose = verbose)
+	ligolw_utils.write_filename(xmldoc, filename, verbose = verbose)
 
 # wrapper for reading snr series from URL
 def read_url(filename, contenthandler = SNRContentHandler, verbose = False):
@@ -782,5 +782,5 @@ def psd_from_event(gid, outdir = ".", save = False, filename = "psd.xml.gz", ver
 	if save:
 		if verbose:
 			sys.stderr.write("saving psd file to %s ...\n" % os.path.join(outdir, filename))
-		ligolw_utils.write_filename(xmldoc, filename, gz = filename.endswith("gz"))
+		ligolw_utils.write_filename(xmldoc, filename)
 	return lal.series.read_psd_xmldoc(xmldoc)
diff --git a/gstlal-ugly/bin/gstlal_cache_to_segments b/gstlal-ugly/bin/gstlal_cache_to_segments
index a209f31cfc75d563d18c477dd100dcd3ae59d766..d72900631a57d49f06130961c9462118072d3e75 100755
--- a/gstlal-ugly/bin/gstlal_cache_to_segments
+++ b/gstlal-ugly/bin/gstlal_cache_to_segments
@@ -19,4 +19,4 @@ with ligolw_segments.LigolwSegments(xmldoc, process) as lwseglists:
 	lwseglists.optimize()
 ligolw_process.set_process_end_time(process)
 
-ligolw_utils.write_filename(xmldoc, sys.argv[2], verbose = True, gz = sys.argv[2].endswith(".gz"))
+ligolw_utils.write_filename(xmldoc, sys.argv[2], verbose = True)
diff --git a/gstlal-ugly/bin/gstlal_glitch_population b/gstlal-ugly/bin/gstlal_glitch_population
index 5346875ce7e8ac0f2a96f1f80ef984320c59c28f..30729f316d312ab103a7844b2e58a8eed84743a3 100755
--- a/gstlal-ugly/bin/gstlal_glitch_population
+++ b/gstlal-ugly/bin/gstlal_glitch_population
@@ -185,4 +185,4 @@ while len(sim_burst_table) < N:
 #
 
 
-utils.write_filename(xmldoc, filenames[0], gz = filenames[0].endswith(".gz"), verbose = options.verbose)
+utils.write_filename(xmldoc, filenames[0], verbose = options.verbose)
diff --git a/gstlal-ugly/bin/gstlal_ilwdify b/gstlal-ugly/bin/gstlal_ilwdify
index cba279e13a9a4eec7751eff1dfa00f4e0f36db2a..8be6782fac253f0d0d7450ef8fcb75697b7289e7 100755
--- a/gstlal-ugly/bin/gstlal_ilwdify
+++ b/gstlal-ugly/bin/gstlal_ilwdify
@@ -18,4 +18,4 @@ array.use_in(LIGOLWContentHandler)
 fname = sys.argv[1]
 xmldoc = ligolw_utils.load_filename(fname, verbose = True, contenthandler = LIGOLWContentHandler)
 xmldoc = ilwdify.do_it_to(xmldoc)
-ligolw_utils.write_filename(xmldoc, fname, gz = fname.endswith('gz'), verbose = True)
+ligolw_utils.write_filename(xmldoc, fname, verbose = True)
diff --git a/gstlal-ugly/bin/gstlal_injsplitter b/gstlal-ugly/bin/gstlal_injsplitter
index 7217bddc760e838d51a5bda7bb002cbe1413ecaa..5c7ca0e020d41b7c057bb8ba3a57cc57923e4deb 100755
--- a/gstlal-ugly/bin/gstlal_injsplitter
+++ b/gstlal-ugly/bin/gstlal_injsplitter
@@ -70,7 +70,7 @@ options, filenames = parse_command_line()
 opts_dict = dict((k, v) for k, v in options.__dict__.items() if v is not False and v is not None)
 
 # LOAD INJECTION TABLE
-xmldoc=utils.load_filename(filenames[0], gz=filenames[0].endswith(".gz"), verbose = options.verbose, contenthandler=ContentHandler)
+xmldoc=utils.load_filename(filenames[0], verbose = options.verbose, contenthandler=ContentHandler)
 sim_inspiral_table=lsctables.table.get_table(xmldoc, lsctables.SimInspiralTable.tableName)
 # Sort the sim inspiral table based on geocent end time
 sim_inspiral_table.sort(key = lambda row: (row.geocent_end_time + 1e-9 * row.geocent_end_time_ns))
@@ -89,5 +89,5 @@ evensplit = numpy.array_split(sim_inspiral_table,options.nsplit);
 for i in range(options.nsplit):
 	sim_inspiral_table_split[:] = evensplit[i]
 	ligolw_process.set_process_end_time(process)
-	utils.write_filename(xmldoc, "%s/%s_INJ_SPLIT_%04d.xml"%(options.output_path,options.usertag,i), gz = False, verbose = options.verbose)
+	utils.write_filename(xmldoc, "%s/%s_INJ_SPLIT_%04d.xml"%(options.output_path,options.usertag,i), verbose = options.verbose)
 
diff --git a/gstlal-ugly/bin/gstlal_inspiral_calc_likelihood_by_bin b/gstlal-ugly/bin/gstlal_inspiral_calc_likelihood_by_bin
index 1a25e7750cec696d0f66f8172f02580c0b4bb16c..a75c679fe6c7fa8e94614b5971b19ab136bbc314 100755
--- a/gstlal-ugly/bin/gstlal_inspiral_calc_likelihood_by_bin
+++ b/gstlal-ugly/bin/gstlal_inspiral_calc_likelihood_by_bin
@@ -259,7 +259,7 @@ if __name__ == '__main__':
 		# clean up.
 		#
 
-		ligolw_utils.write_url(xmldoc, url, gz = (url or "stdout").endswith(".gz"), verbose = options.verbose)
+		ligolw_utils.write_url(xmldoc, url, verbose = options.verbose)
 		xmldoc.unlink()
 
 
diff --git a/gstlal-ugly/bin/gstlal_inspiral_treebank b/gstlal-ugly/bin/gstlal_inspiral_treebank
index 0f86d14f2c4956a00c933cfc82b5388d73872fad..dd6ee3a4127357905e0273157ccb69d0f443bc15 100755
--- a/gstlal-ugly/bin/gstlal_inspiral_treebank
+++ b/gstlal-ugly/bin/gstlal_inspiral_treebank
@@ -260,7 +260,7 @@ for n, c in enumerate(nodes):
 
 numpy.save("patches.npy", numpy.array(patches))
 
-utils.write_filename(xmldoc, args.output_name,  gz=args.output_name.endswith("gz"))
+utils.write_filename(xmldoc, args.output_name)
 
 if args.verbose:
 	print("Number of leaf nodes: ", n+1, file=sys.stderr)
diff --git a/gstlal-ugly/bin/gstlal_ligolw_add_without_reassign b/gstlal-ugly/bin/gstlal_ligolw_add_without_reassign
index c2f18434d873a3efa77fac884d8ecce4b402898c..3419393fd3e26513436a829d0b27e967d8a4bad6 100755
--- a/gstlal-ugly/bin/gstlal_ligolw_add_without_reassign
+++ b/gstlal-ugly/bin/gstlal_ligolw_add_without_reassign
@@ -153,8 +153,7 @@ xmldoc = _ligolw_add(
 ligolw_utils.write_filename(
 	xmldoc,
 	options.output,
-	verbose = options.verbose,
-	gz = (options.output or "stdout").endswith(".gz")
+	verbose = options.verbose
 )
 
 
diff --git a/gstlal-ugly/bin/gstlal_segments_operations b/gstlal-ugly/bin/gstlal_segments_operations
index ec925c65990aeeb6972e537b1c36bc7d463adbb4..ceed36fc684089e056b66dd8d5d0a477895f9033 100755
--- a/gstlal-ugly/bin/gstlal_segments_operations
+++ b/gstlal-ugly/bin/gstlal_segments_operations
@@ -103,5 +103,5 @@ if options.output_file:
 	lwseglists.finalize(process)
 
 	ligolw_process.set_process_end_time(process)
-	ligolw_utils.write_filename(xmldoc, options.output_file, verbose = options.verbose, gz = options.output_file.endswith('.gz'))
+	ligolw_utils.write_filename(xmldoc, options.output_file, verbose = options.verbose)
 
diff --git a/gstlal-ugly/bin/gstlal_segments_trim b/gstlal-ugly/bin/gstlal_segments_trim
index e8340b444c48ab0beb0f51eceeb4410b6f166a3a..52f6e470aec156d99ed94c36599ed648beb357db 100755
--- a/gstlal-ugly/bin/gstlal_segments_trim
+++ b/gstlal-ugly/bin/gstlal_segments_trim
@@ -79,5 +79,5 @@ lwseglists.insert_from_segmentlistdict(segs, options.segment_name)
 lwseglists.optimize()
 lwseglists.finalize(process)
 
-ligolw_utils.write_filename(xmldoc, options.output, gz = options.output.endswith('.gz'), verbose = True)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = True)
 
diff --git a/gstlal-ugly/bin/gstlal_vetoes_from_burst_inj b/gstlal-ugly/bin/gstlal_vetoes_from_burst_inj
index 3ad322c7f4f340941a3eb194290cfb9b0cde46ec..64997f2d60f7d74cb3f3410d4cd58ca405f5c82a 100755
--- a/gstlal-ugly/bin/gstlal_vetoes_from_burst_inj
+++ b/gstlal-ugly/bin/gstlal_vetoes_from_burst_inj
@@ -144,4 +144,4 @@ llwsegments = ligolw_segments.LigolwSegments(xmldoc)
 llwsegments.insert_from_segmentlistdict(vetoes, options.vetoes_name, "Burst injections")
 llwsegments.finalize(process)
 
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
diff --git a/gstlal-ugly/bin/gstlal_vetoes_from_burst_triggers b/gstlal-ugly/bin/gstlal_vetoes_from_burst_triggers
index cee49eb1b2073c60f6f98f6a1d65402931f2eb19..91b3f96d2f2158ab203376d883a5ab5619c15f30 100755
--- a/gstlal-ugly/bin/gstlal_vetoes_from_burst_triggers
+++ b/gstlal-ugly/bin/gstlal_vetoes_from_burst_triggers
@@ -139,4 +139,4 @@ for r in segdef:
 	r.version = 0
 	r.insertion_time = 0
 
-ligolw_utils.write_filename(xmldoc, options.output, gz = (options.output or "stdout").endswith(".gz"), verbose = options.verbose)
+ligolw_utils.write_filename(xmldoc, options.output, verbose = options.verbose)
diff --git a/gstlal/python/reference_psd.py b/gstlal/python/reference_psd.py
index 605d725ed1ec8144de2925b907196de1ca480079..3f9308db99b4fc2c8b1350d8a67c46c2803305b5 100644
--- a/gstlal/python/reference_psd.py
+++ b/gstlal/python/reference_psd.py
@@ -204,7 +204,7 @@ def write_psd(filename, psddict, verbose = False, trap_signals = None):
 	Wrapper around make_psd_xmldoc() to write the XML document directly
 	to a named file.
 	"""
-	ligolw_utils.write_filename(lal.series.make_psd_xmldoc(psddict), filename, gz = (filename or "stdout").endswith(".gz"), verbose = verbose, trap_signals = trap_signals)
+	ligolw_utils.write_filename(lal.series.make_psd_xmldoc(psddict), filename, verbose = verbose, trap_signals = trap_signals)
 
 
 #