diff --git a/src/modules/Mysql/mysql.c b/src/modules/Mysql/mysql.c
index 0e7166fafb40fd91ec7049f8b0673fb63c03d2bd..9c12f8863633c7b2380a0e2b1e716061dd13f13f 100644
--- a/src/modules/Mysql/mysql.c
+++ b/src/modules/Mysql/mysql.c
@@ -482,13 +482,13 @@ static void pike_mysql_reconnect (int reconnect)
 
   MYSQL_ALLOW();
 
+#if defined(HAVE_MYSQL_PORT) || defined(HAVE_MYSQL_UNIX_PORT)
+  STUPID_PORT_LOCK();
+#endif /* HAVE_MYSQL_PORT || HAVE_MYSQL_UNIX_PORT */
 #ifdef HAVE_MYSQL_REAL_CONNECT
   socket = mysql_real_connect(mysql, host, user, password,
                               NULL, port, portptr, options);
 #else
-#if defined(HAVE_MYSQL_PORT) || defined(HAVE_MYSQL_UNIX_PORT)
-  STUPID_PORT_LOCK();
-#endif /* HAVE_MYSQL_PORT || HAVE_MYSQL_UNIX_PORT */
 
 #ifdef HAVE_MYSQL_PORT
   if (port) {
@@ -516,10 +516,10 @@ static void pike_mysql_reconnect (int reconnect)
   }
 #endif /* HAVE_MYSQL_UNIX_PORT */
 
+#endif /* HAVE_MYSQL_REAL_CONNECT */
 #if defined(HAVE_MYSQL_PORT) || defined(HAVE_MYSQL_UNIX_PORT)
   STUPID_PORT_UNLOCK();
 #endif /* HAVE_MYSQL_PORT || MAVE_MYSQL_UNIX_PORT*/
-#endif /* HAVE_MYSQL_REAL_CONNECT */
 
   MYSQL_DISALLOW();