diff --git a/gstlal-inspiral/bin/gstlal_svd_bank b/gstlal-inspiral/bin/gstlal_svd_bank
index 0d01e87dacdc798ab626a5b785d5ee26844822ba..b654dad966758fb180b685aff75fddb2045101d1 100755
--- a/gstlal-inspiral/bin/gstlal_svd_bank
+++ b/gstlal-inspiral/bin/gstlal_svd_bank
@@ -148,6 +148,5 @@ svd_bank.write_bank(
 		contenthandler = svd_bank.DefaultContentHandler
 	) for (template_bank, bank_id) in zip(options.template_bank, options.bank_id)],
 	options.clipleft,
-	options.clipright,
-	write_psd = True
+	options.clipright
 )
diff --git a/gstlal-inspiral/python/svd_bank.py b/gstlal-inspiral/python/svd_bank.py
index a55af69f6fdf0ce50155e1324608bdd2492b0869..2d295183f665a27edc9c143d34af9dd3812c3a3f 100644
--- a/gstlal-inspiral/python/svd_bank.py
+++ b/gstlal-inspiral/python/svd_bank.py
@@ -259,7 +259,7 @@ def build_bank(template_bank_url, psd, flow, ortho_gate_fap, snr_threshold, svd_
 	return bank
 
 
-def write_bank(filename, banks, cliplefts = None, cliprights = None, write_psd = False, verbose = False):
+def write_bank(filename, banks, cliplefts = None, cliprights = None, verbose = False):
 	"""Write SVD banks to a LIGO_LW xml file."""
 
 	# Create new document
@@ -333,8 +333,7 @@ def write_bank(filename, banks, cliplefts = None, cliprights = None, write_psd =
 	# put a copy of the processed PSD file in
 	# FIXME in principle this could be different for each bank included in
 	# this file, but we only put one here
-	if write_psd:
-		lal.series.make_psd_xmldoc({bank.sngl_inspiral_table[0].ifo: bank.processed_psd}, lw)
+	lal.series.make_psd_xmldoc({bank.sngl_inspiral_table[0].ifo: bank.processed_psd}, lw)
 
 	# Write to file
 	ligolw_utils.write_filename(xmldoc, filename, gz = filename.endswith('.gz'), verbose = verbose)
@@ -348,6 +347,10 @@ def read_banks(filename, contenthandler, verbose = False):
 
 	banks = []
 
+	# FIXME in principle this could be different for each bank included in
+	# this file, but we only put one in the file for now
+	psd = lal.series.read_psd_xmldoc(xmldoc)
+
 	for root in (elem for elem in xmldoc.getElementsByTagName(ligolw.LIGO_LW.tagName) if elem.hasAttribute(u"Name") and elem.Name == "gstlal_svd_bank_Bank"):
 	
 		# Create new SVD bank object
@@ -370,6 +373,9 @@ def read_banks(filename, contenthandler, verbose = False):
 		bank.autocorrelation_mask = ligolw_array.get_array(root, 'autocorrelation_mask').array
 		bank.sigmasq = ligolw_array.get_array(root, 'sigmasq').array
 
+		# attach a reference to the psd
+		bank.psd = psd
+
 		# Read bank fragments
 		bank.bank_fragments = []
 		for el in (node for node in root.childNodes if node.tagName == ligolw.LIGO_LW.tagName):