diff --git a/gstlal-inspiral/python/inspiral.py b/gstlal-inspiral/python/inspiral.py
index 76c56249722d8f025fcf078e3a5055607e70526f..43fe581e7064ec106e055c05d2d0c31343f1c1a0 100644
--- a/gstlal-inspiral/python/inspiral.py
+++ b/gstlal-inspiral/python/inspiral.py
@@ -59,6 +59,7 @@ import sys
 import time
 import httplib
 import tempfile
+import os
 
 from glue import iterutils
 from ligo.lw import ligolw
@@ -685,7 +686,6 @@ class GracedBWrapper(object):
 
 			# serialize to XML
 			ligolw_utils.write_fileobj(xmldoc, message, gz = False)
-			xmldoc.unlink()
 			# FIXME: make this optional from command line?
 			if True:
 				for attempt in range(1, self.retries + 1):
@@ -708,6 +708,14 @@ class GracedBWrapper(object):
 				with open(filename, "w") as f:
 					f.write(message.getvalue())
 			message.close()
+			try:
+				os.mkdir("gracedb_uploads")
+			except OSError:
+				pass
+			with open(os.path.join("gracedb_uploads", filename), "w") as fileobj:
+                               ligolw_utils.write_fileobj(xmldoc, fileobj, gz = False)
+
+			xmldoc.unlink()
 
 		#
 		# upload PSDs and ranking statistic data