diff --git a/gstlal-inspiral/python/ilwdify.py b/gstlal-inspiral/python/ilwdify.py
index 19d229c3b9f0155b041edaea38c1fb2687531d29..371325a0b9df76828673a5e9017c5f14c1cb58f7 100755
--- a/gstlal-inspiral/python/ilwdify.py
+++ b/gstlal-inspiral/python/ilwdify.py
@@ -121,9 +121,20 @@ def do_it_to(xmldoc):
 			# the table_name column
 			newrowtype = newtable.RowType
 			def newrow(row, coinc_id_ilwdcls = ilwdchar_tables["coinc_event"]["coinc_event_id"]):
+				# FIXME this is probably a dumb way to do this,
+				# but it shouldn't matter once we have no
+				# reason to convert back to ilwdchar
+				if "event_id" in ilwdchar_tables[row.table_name]:
+					event_id = ilwdchar_tables[row.table_name]["event_id"](row.event_id)
+				elif "simulation_id" in ilwdchar_tables[row.table_name]:
+					event_id = ilwdchar_tables[row.table_name]["simulation_id"](row.event_id)
+				elif "coinc_event_id" in ilwdchar_tables[row.table_name]:
+					event_id = ilwdchar_tables[row.table_name]["coinc_event_id"](row.event_id)
+				else:
+					raise KeyError("event_id, simulation_id or coinc_event_id not in " +  ilwdchar_tables[row.table_name])
 				return newrowtype(
 					table_name = row.table_name,
-					event_id = ilwdchar_tables[row.table_name]["event_id"](row.event_id),
+					event_id = event_id,
 					coinc_event_id = coinc_id_ilwdcls(row.coinc_event_id)
 				)