diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index c3e6675681f13b2f66ae609fd22d017d5f7a55ab..da0a6d1986ba7a4f893c71d14f055fcd3a8ab3c7 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -506,9 +506,10 @@ outer:
           PD("SSLRequest\n");
           start()->add_int32(8)->add_int32(PG_PROTOCOL(1234,5679))
            ->sendcmd(SENDOUT);
-          switch(read_int8()) {
+          string s = socket.read(1);
+          switch (sizeof(s) && s[0]) {
             case 'S':
-              object fcon=SSL.File(socket,SSL.Context());
+              SSL.File fcon = SSL.File(socket, SSL.Context());
               if(fcon->connect()) {
                 socket=fcon;
                 break;