diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp
index c0358676d73370177d5439bd51ebe5dc7feee514..529b07c01aed96121a1d8a50d5275357646ba8a8 100644
--- a/src/sbbs3/newuser.cpp
+++ b/src/sbbs3/newuser.cpp
@@ -419,7 +419,12 @@ void sbbs_t::newuser()
 			i=j+1; }
 
 	useron.number=i;
-	putuserdat(&cfg,&useron);
+	if((i=putuserdat(&cfg,&useron))!=0) {
+		sprintf(str,"user record #%u",useron.number);
+		errormsg(WHERE,ERR_CREATE,str,i);
+		hangup();
+		return; 
+	}
 	putusername(&cfg,useron.number,useron.alias);
 	sprintf(str,"Created user record #%u: %s",useron.number,useron.alias);
 	logline(nulstr,str);