diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index 81d1df436cdea654d68decadbd5a3dbb12a6994a..e8365393b89c80043be184ecd09a32483e3db016 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -1324,7 +1324,7 @@ class sql_result {
   }
 
   final void _releasestatement() {
-    Thread.MutexKey lock = closemux->lock(2);
+    Thread.MutexKey lock = closemux->lock();
     if (_state <= BOUND) {
       _state = COMMITTED;
       stmtifkey = 0;
@@ -1367,7 +1367,8 @@ class sql_result {
     switch (_state) {
       case PARSING:
       case BOUND:
-        _releasestatement();
+        _state = COMMITTED;	// Avoid _releasestatement() to prevent
+        stmtifkey = 0;		// lock recursion and lock inversion deadlock
     }
     switch (_state) {
       case PORTALINIT: