diff --git a/src/sbbs3/sockopts.c b/src/sbbs3/sockopts.c
index 6815302c9c9cce3cc6fc1b597be26e650d69c743..149dfa0004d8a2cd39c280dff4ce74b135a95671 100644
--- a/src/sbbs3/sockopts.c
+++ b/src/sbbs3/sockopts.c
@@ -79,6 +79,7 @@ int DLLCALL set_socket_options(scfg_t* cfg, SOCKET sock, char* error)
 	char		cfgfile[MAX_PATH+1];
 	char		str[256];
 	char*		p;
+	char*		name;
 	BYTE*		vp;
 	FILE*		fp;
 	int			option;
@@ -104,12 +105,14 @@ int DLLCALL set_socket_options(scfg_t* cfg, SOCKET sock, char* error)
 	while(!feof(fp)) {
 		if(!fgets(str,sizeof(str),fp))
 			break;
-		if(str[0]==';')
+		name=str;
+		while(*name && *name<=' ') name++;
+		if(*name==';' || *name==0)	/* blank line or comment */
 			continue;
-		p=str;
+		p=name;
 		while(*p && *p>' ') p++;
 		if(*p) *(p++)=0;
-		option=sockopt(str);
+		option=sockopt(name);
 		while(*p && *p<=' ') p++;
 		len=sizeof(value);
 		value=strtol(p,NULL,0);
@@ -135,13 +138,13 @@ int DLLCALL set_socket_options(scfg_t* cfg, SOCKET sock, char* error)
 		result=setsockopt(sock,SOL_SOCKET,option,vp,len);
 		if(result) {
 			sprintf(error,"%d setting socket option (%s, %d) to %d"
-				,ERROR_VALUE, str, option, value);
+				,ERROR_VALUE, name, option, value);
 			break;
 		}
 #if 0
 		len = sizeof(value);
 		getsockopt(sock,SOL_SOCKET,option,(void*)&value,&len);
-		lprintf("%04d socket option: %s set to %d", sock, str, value);
+		lprintf("%04d socket option: %s set to %d", sock, name, value);
 #endif
 	}
 	fclose(fp);