diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp
index d234ebbdd092c428317122cc0d74af93753322e3..6a90afedfe116e08be287603386ae2b7e9f94aaf 100644
--- a/src/sbbs3/atcodes.cpp
+++ b/src/sbbs3/atcodes.cpp
@@ -38,6 +38,13 @@
 #include "sbbs.h"
 #include "cmdshell.h"
 
+#if defined(_WINSOCKAPI_)
+	extern WSADATA WSAData;
+	#define SOCKLIB_DESC WSAData.szDescription
+#else
+	#define	SOCKLIB_DESC NULL
+#endif
+
 /****************************************************************************/
 /* Returns 0 if invalid @ code. Returns length of @ code if valid.          */
 /****************************************************************************/
@@ -157,7 +164,7 @@ char* sbbs_t::atcode(char* sp, char* str)
 	}
 
 	if(!strcmp(sp,"SOCKET_LIB")) 
-		return(socklib_version(str));
+		return(socklib_version(str,SOCKLIB_DESC));
 
 	if(!strcmp(sp,"MSG_LIB")) {
 		sprintf(str,"SMBLIB %s",smb_lib_ver());
diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 1120531cccaa9d1fa786516ffd99e4bd2eba56c4..4543bac64c00e4ab1da71520a7e543a5516447da 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -153,6 +153,8 @@ static int lprintf(int level, char *fmt, ...)
 #ifdef _WINSOCKAPI_
 
 static WSADATA WSAData;
+#define SOCKLIB_DESC WSAData.szDescription
+
 static BOOL WSAInitialized=FALSE;
 
 static BOOL winsock_startup(void)
@@ -172,6 +174,7 @@ static BOOL winsock_startup(void)
 #else /* No WINSOCK */
 
 #define winsock_startup()	(TRUE)
+#define SOCKLIB_DESC		NULL
 
 #endif
 
@@ -491,7 +494,7 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, JSObject** ftp)
 			break;
 
 		lprintf(LOG_DEBUG,"%04d JavaScript: Initializing System object",sock);
-		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL) 
+		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) 
 			break;
 
 		if((*ftp=JS_DefineObject(js_cx, js_glob, "ftp", NULL
diff --git a/src/sbbs3/js_system.c b/src/sbbs3/js_system.c
index 2825519a724d22c0be64b9e07128ca91605d690f..dd61617c5f80f4a012cf1f9adb190ee52cd46cc9 100644
--- a/src/sbbs3/js_system.c
+++ b/src/sbbs3/js_system.c
@@ -1587,7 +1587,7 @@ static JSClass js_node_class = {
 };
 
 JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent
-										,scfg_t* cfg, time_t uptime, char* host_name)
+										,scfg_t* cfg, time_t uptime, char* host_name, char* socklib_desc)
 {
 	char		str[256];
 	uint		i;
@@ -1671,7 +1671,7 @@ JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent
 	if(!JS_SetProperty(cx, sysobj, "platform", &val))
 		return(NULL);
 
-	if((js_str=JS_NewStringCopyZ(cx, socklib_version(str)))==NULL)
+	if((js_str=JS_NewStringCopyZ(cx, socklib_version(str, socklib_desc)))==NULL)
 		return(NULL);
 	val = STRING_TO_JSVAL(js_str);
 	if(!JS_SetProperty(cx, sysobj, "socket_lib", &val))
diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c
index f32c052d2b9f7d844dc05b87d1fcd25c2ed944f1..69ed19df9a682933665da3422ef8cd9cf0e3c101 100644
--- a/src/sbbs3/jsexec.c
+++ b/src/sbbs3/jsexec.c
@@ -138,6 +138,7 @@ int lprintf(int level, char *fmt, ...)
 #if defined(_WINSOCKAPI_)
 
 WSADATA WSAData;
+#define SOCKLIB_DESC WSAData.szDescription
 static BOOL WSAInitialized=FALSE;
 
 static BOOL winsock_startup(void)
@@ -156,7 +157,8 @@ static BOOL winsock_startup(void)
 
 #else /* No WINSOCK */
 
-#define winsock_startup()	(TRUE)	
+#define winsock_startup()	(TRUE)
+#define SOCKLIB_DESC NULL
 
 #endif
 
@@ -502,7 +504,7 @@ static BOOL js_init(char** environ)
 		return(FALSE);
 
 	/* System Object */
-	if(js_CreateSystemObject(js_cx, js_glob, &scfg, time(NULL), host_name)==NULL)
+	if(js_CreateSystemObject(js_cx, js_glob, &scfg, time(NULL), host_name, SOCKLIB_DESC)==NULL)
 		return(FALSE);
 
 	/* Socket Class */
diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index b984567adc65afbd169f9003bd4646b03e63fb12..1a46ae7bac52737dd30521820acf0f9f9077dbcf 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -125,6 +125,7 @@ static int lprintf(int level, char *fmt, ...)
 #ifdef _WINSOCKAPI_
 
 static WSADATA WSAData;
+#define SOCKLIB_DESC WSAData.szDescription
 static BOOL WSAInitialized=FALSE;
 
 static BOOL winsock_startup(void)
@@ -144,6 +145,7 @@ static BOOL winsock_startup(void)
 #else /* No WINSOCK */
 
 #define winsock_startup()	(TRUE)
+#define SOCKLIB_DESC NULL
 
 #endif
 
@@ -1437,7 +1439,7 @@ js_mailproc(SOCKET sock, client_t* client, user_t* user
 			break;
 
 		/* System Object */
-		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL)
+		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL)
 			break;
 
 		/* Socket Class */
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index dfad93b339406a2f7219ef4214be6ed45cc2fe88..86a79dddb001861ce14d4667dcdc8270358c7676 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -233,6 +233,33 @@ u_long resolve_ip(char *addr)
 
 } /* extern "C" */
 
+#ifdef _WINSOCKAPI_
+
+WSADATA WSAData;
+#define SOCKLIB_DESC WSAData.szDescription
+static BOOL WSAInitialized=FALSE;
+
+static BOOL winsock_startup(void)
+{
+	int		status;             /* Status Code */
+
+    if((status = WSAStartup(MAKEWORD(1,1), &WSAData))==0) {
+		lprintf(LOG_INFO,"%s %s",WSAData.szDescription, WSAData.szSystemStatus);
+		WSAInitialized=TRUE;
+		return(TRUE);
+	}
+
+    lprintf(LOG_ERR,"!WinSock startup ERROR %d", status);
+	return(FALSE);
+}
+
+#else /* No WINSOCK */
+
+#define winsock_startup()	(TRUE)
+#define SOCKLIB_DESC NULL
+
+#endif
+
 #ifdef JAVASCRIPT
 
 static js_server_props_t js_server_props;
@@ -863,7 +890,7 @@ bool sbbs_t::js_init()
 #endif
 
 		/* System Object */
-		if(js_CreateSystemObject(js_cx, js_glob, &cfg, uptime, startup->host_name)==NULL)
+		if(js_CreateSystemObject(js_cx, js_glob, &cfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL)
 			break;
 
 		/* Internal JS Object */
@@ -960,31 +987,6 @@ void sbbs_t::js_create_user_objects(void)
 
 #endif	/* JAVASCRIPT */
 
-#ifdef _WINSOCKAPI_
-
-WSADATA WSAData;
-static BOOL WSAInitialized=FALSE;
-
-static BOOL winsock_startup(void)
-{
-	int		status;             /* Status Code */
-
-    if((status = WSAStartup(MAKEWORD(1,1), &WSAData))==0) {
-		lprintf(LOG_INFO,"%s %s",WSAData.szDescription, WSAData.szSystemStatus);
-		WSAInitialized=TRUE;
-		return(TRUE);
-	}
-
-    lprintf(LOG_ERR,"!WinSock startup ERROR %d", status);
-	return(FALSE);
-}
-
-#else /* No WINSOCK */
-
-#define winsock_startup()	(TRUE)	
-
-#endif
-
 static BYTE* telnet_interpret(sbbs_t* sbbs, BYTE* inbuf, int inlen,
   									BYTE* outbuf, int& outlen)
 {
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 80b5b5f6662d7ed12df7bf31162cc95508783cd1..0d3c2735a27045c9a04f57f2384e8781e1990ae7 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -931,7 +931,9 @@ extern "C" {
 
 	/* js_system.c */
 	DLLEXPORT JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent
-													,scfg_t* cfg, time_t uptime, char* host_name);
+													,scfg_t* cfg, time_t uptime
+													,char* host_name
+													,char* socklib_desc);
 
 	/* js_client.c */
 	DLLEXPORT JSObject* DLLCALL js_CreateClientObject(JSContext* cx, JSObject* parent
@@ -1010,7 +1012,7 @@ BOOL 	md(char *path);
 	char *	readtext(long *line, FILE *stream);
 
 	/* ver.cpp */
-	char*	socklib_version(char* str);
+	char*	socklib_version(char* str, char* winsock_ver);
 	
 	/* sortdir.cpp */
 	int		fnamecmp_a(char **str1, char **str2);	 /* for use with resort() */
diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index d5e0f1530a6eb07ea094a92930a99ae45062d3ae..209e78b34b6f003531eaa63026366288597dab1b 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -160,6 +160,7 @@ static int lprintf(int level, char *fmt, ...)
 #ifdef _WINSOCKAPI_
 
 static WSADATA WSAData;
+#define SOCKLIB_DESC WSAData.szDescription
 static BOOL WSAInitialized=FALSE;
 
 static BOOL winsock_startup(void)
@@ -179,6 +180,7 @@ static BOOL winsock_startup(void)
 #else /* No WINSOCK */
 
 #define winsock_startup()	(TRUE)
+#define SOCKLIB_DESC NULL
 
 #endif
 
@@ -811,7 +813,7 @@ js_initcx(JSRuntime* js_runtime, SOCKET sock, service_client_t* service_client,
 		if(!js_CreateUserObjects(js_cx, js_glob, &scfg, NULL, NULL, NULL)) 
 			break;
 
-		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL) 
+		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) 
 			break;
 #if 0		
 		char		ver[256];
diff --git a/src/sbbs3/ver.cpp b/src/sbbs3/ver.cpp
index bc55ffeec2b7f5a92549247f455063b9c89d82e5..5e5e396e3e4e3825522c383e8de8435e625f87b8 100644
--- a/src/sbbs3/ver.cpp
+++ b/src/sbbs3/ver.cpp
@@ -41,17 +41,20 @@ extern "C" const char* beta_version = " alpha"; /* Space if non-beta, " beta" ot
 
 #if defined(_WINSOCKAPI_)
 	extern WSADATA WSAData;
+	#define SOCKLIB_DESC WSAData.szDescription
+#else
+	#define	SOCKLIB_DESC NULL
 #endif
 
 #if defined(__unix__)
 	#include <sys/utsname.h>	/* uname() */
 #endif
 
-char* socklib_version(char* str)
+char* socklib_version(char* str, char* winsock_ver)
 {
 #if defined(_WINSOCKAPI_)
 
-	strcpy(str,WSAData.szDescription);
+	strcpy(str,winsock_ver);
 
 #elif defined(__GLIBC__)
 
@@ -101,7 +104,7 @@ void sbbs_t::ver()
 	}
 #endif
 
-	center(socklib_version(str));
+	center(socklib_version(str,SOCKLIB_DESC));
 	CRLF;
 
 	center(os_version(str));
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index f9edadc294646f9884f952b189696e47e56996c8..0f95babd7ce495cafdfa8f9e46cd007a14d8f422 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -287,6 +287,7 @@ static int lprintf(int level, char *fmt, ...)
 #ifdef _WINSOCKAPI_
 
 static WSADATA WSAData;
+#define SOCKLIB_DESC WSAData.szDescription
 static BOOL WSAInitialized=FALSE;
 
 static BOOL winsock_startup(void)
@@ -306,6 +307,7 @@ static BOOL winsock_startup(void)
 #else /* No WINSOCK */
 
 #define winsock_startup()	(TRUE)
+#define SOCKLIB_DESC NULL
 
 #endif
 
@@ -2090,7 +2092,7 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, http_session_t *sess
 			break;
 
 		lprintf(LOG_INFO,"%04d JavaScript: Initializing System object",sock);
-		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL) 
+		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) 
 			break;
 
 #if 0