diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index df90a5ac0ec1b4f933bbc58225e2acc45d0148c2..8bb7b2147ea57b53255c68430818b040fab18bae 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -2577,8 +2577,13 @@ time_t DLLCALL gettimeleft(scfg_t* cfg, user_t* user, time_t starttime)
 BOOL DLLCALL check_name(scfg_t* cfg, char* name)
 {
 	char	tmp[512];
+	size_t	len;
 
-	if (   name[0] <= ' '
+	len=strlen(name);
+	if(len<1)
+		return FALSE;
+	if (   name[0] <= ' '			/* begins with white-space? */
+		|| name[len-1] <= ' '		/* ends with white-space */
 		|| !isalpha(name[0])
 		|| !stricmp(name,cfg->sys_id)
 		|| strchr(name,0xff)