diff --git a/gwpy/io/ligolw.py b/gwpy/io/ligolw.py
index <HASH>..<HASH> 100644
--- a/gwpy/io/ligolw.py
+++ b/gwpy/io/ligolw.py
@@ -115,6 +115,7 @@ def table_from_file(f, tablename, columns=None, filt=None,
             gprint('%d rows remaining\n' % len(out))
     if columns is not None:
         tableclass.loadcolumns = _oldcols
+    xmldoc.unlink()
     return out
io.ligolw: use unlink to promote gc