diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index 2eaec13420b7e7fcc956e24b97463ca8db00a999..f0077a1455988054b16ff215bde2fd1cf5bce183 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -24,7 +24,7 @@ final Pike.Backend local_backend = Pike.SmallBackend();
 private Thread.Mutex backendmux = Thread.Mutex();
 private int clientsregistered;
 
-final array emptyarray=({});
+constant emptyarray = ({});
 final multiset censoroptions=(<"use_ssl","force_ssl",
  "cache_autoprepared_statements","reconnect","text_query","is_superuser",
  "server_encoding","server_version","integer_datetimes",
@@ -287,43 +287,46 @@ class conxion {
     return 0;
   }
 
-  final void sendcmd(void|int mode,void|sql_result portal) {
-    if(portal)
+  final void sendcmd(void|int mode, void|sql_result portal) {
+    if (portal)
       queueup(portal);
+    Thread.MutexKey lock;
+    if (started) {
+      lock = shortmux->lock();
+      if (sizeof(stash)) {
+        add(stash);
+        stash->clear();
+        foreach (stashqueue->try_read_array();; sql_result portal)
+          queueup(portal);
+      }
+      mode = mergemode(this, mode);
+      stashflushmode = KEEP;
+    }
 nosync:
     do {
-      switch(mode) {
+      switch (mode) {
         default:
           break nosync;
         case SYNCSEND:
           PD("%d>Sync %d %d Queue\n",
-           socket->query_fd(),synctransact,++queueoutidx);
+           socket->query_fd(), synctransact, ++queueoutidx);
           add(PGSYNC);
-          mode=SENDOUT;
+          mode = SENDOUT;
           break;
         case FLUSHLOGSEND:
           PD("%d>%O %d Queue simplequery %d bytes\n",
-           socket->query_fd(),portal._portalname,++queueoutidx,sizeof(this));
-          mode=FLUSHSEND;
+           socket->query_fd(), portal._portalname, ++queueoutidx, sizeof(this));
+          mode = FLUSHSEND;
       }
       qportals->write(synctransact++);
-    } while(0);
-    Thread.MutexKey lock;
-    if(started) {
-      lock=shortmux->lock();
-      if(sizeof(stash)) {
-        add(stash); stash->clear();
-        foreach(stashqueue->try_read_array();;sql_result portal)
-          queueup(portal);
-      }
-      mode=mergemode(this,mode);
-      stashflushmode=KEEP;
-    }
+    } while (0);
     catch {
 outer:
       do {
         switch(mode) {
           default:
+            PD("%d>Skip flush %d Queue %O\n",
+             socket->query_fd(), mode, (string)this);
             break outer;
           case FLUSHSEND:
             PD("Flush\n");