diff --git a/Common/GmshSocket.h b/Common/GmshSocket.h
index 3495ebe9a81b6a2db3fefcfdaa6367dad91832ae..6bfa40a1d3d71b498b49f214e0cd67a7dfaaa50a 100644
--- a/Common/GmshSocket.h
+++ b/Common/GmshSocket.h
@@ -23,9 +23,13 @@
 #include <sys/time.h>
 #include <netinet/in.h>
 #include <netdb.h>
+#if defined(HAVE_NO_SOCKLEN_T)
+typedef int socklen_t;
+#endif
 #else
 #include <winsock.h>
 #include <process.h>
+typedef int socklen_t;
 #endif
 
 class GmshSocket{
@@ -369,15 +373,10 @@ class GmshServer : public GmshSocket{
     }
 
     // accept connection request
-#if defined(HAVE_NO_SOCKLEN_T)
-    int len;
-#else
-    socklen_t len;
-#endif
     if(_portno < 0){
 #if !defined(WIN32) || defined(__CYGWIN__)
       struct sockaddr_un from_un;
-      len = sizeof(from_un);
+      socklen_t len = sizeof(from_un);
       _sock = accept(tmpsock, (struct sockaddr *)&from_un, &len);
 #else
       _sock = -7; // Unix sockets not available on Windows
@@ -385,7 +384,7 @@ class GmshServer : public GmshSocket{
     }
     else{
       struct sockaddr_in from_in;
-      len = sizeof(from_in);
+      socklen_t len = sizeof(from_in);
       _sock = accept(tmpsock, (struct sockaddr *)&from_in, &len);
     }
     CloseSocket(tmpsock);
diff --git a/utils/solvers/c++/GmshSocket.h b/utils/solvers/c++/GmshSocket.h
index 3495ebe9a81b6a2db3fefcfdaa6367dad91832ae..6bfa40a1d3d71b498b49f214e0cd67a7dfaaa50a 100644
--- a/utils/solvers/c++/GmshSocket.h
+++ b/utils/solvers/c++/GmshSocket.h
@@ -23,9 +23,13 @@
 #include <sys/time.h>
 #include <netinet/in.h>
 #include <netdb.h>
+#if defined(HAVE_NO_SOCKLEN_T)
+typedef int socklen_t;
+#endif
 #else
 #include <winsock.h>
 #include <process.h>
+typedef int socklen_t;
 #endif
 
 class GmshSocket{
@@ -369,15 +373,10 @@ class GmshServer : public GmshSocket{
     }
 
     // accept connection request
-#if defined(HAVE_NO_SOCKLEN_T)
-    int len;
-#else
-    socklen_t len;
-#endif
     if(_portno < 0){
 #if !defined(WIN32) || defined(__CYGWIN__)
       struct sockaddr_un from_un;
-      len = sizeof(from_un);
+      socklen_t len = sizeof(from_un);
       _sock = accept(tmpsock, (struct sockaddr *)&from_un, &len);
 #else
       _sock = -7; // Unix sockets not available on Windows
@@ -385,7 +384,7 @@ class GmshServer : public GmshSocket{
     }
     else{
       struct sockaddr_in from_in;
-      len = sizeof(from_in);
+      socklen_t len = sizeof(from_in);
       _sock = accept(tmpsock, (struct sockaddr *)&from_in, &len);
     }
     CloseSocket(tmpsock);