diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index 602fb09b42421c59c5ec689f17b2cb9b20bbc06a..631f8a025d2f0eec2237a590d9aca8746fb39217 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -1221,7 +1221,8 @@ private void startquery(int forcetext, .pgsql_util.sql_result portal, string q,
     Thread.Thread(startquery, forcetext, portal, q, tp, preparedname);
   else
     startquery(forcetext, portal, q, tp, preparedname);
-  throwdelayederror(portal);
+  if (portal)			  // Catches race where portal already imploded
+    throwdelayederror(portal);
   return portal;
 }