diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index 095d382d4683245cf30fa565bd9ef2c264d97f3d..6b9fd43af14783430de5c15960d6d4c9e215729d 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -242,7 +242,7 @@ bool sbbs_t::logon()
 			bprintf(text[TimeToChangePw],cfg.sys_pwdays);
 
 			c=0;
-			while(c < RAND_PASS_LEN) { 				/* Create random password */
+			while(c < max(RAND_PASS_LEN, cfg.min_pwlen)) { 				/* Create random password */
 				str[c]=sbbs_random(43)+'0';
 				if(IS_ALPHANUMERIC(str[c]))
 					c++; 
diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp
index f462e72fe84bdd4fcde64c2b7f75c062cc94bb3a..57b902dd83af17b5f26e61d58fb72fee8bb6e9d8 100644
--- a/src/sbbs3/newuser.cpp
+++ b/src/sbbs3/newuser.cpp
@@ -381,7 +381,7 @@ BOOL sbbs_t::newuser()
 	}
 	else {
 		c=0;
-		while(c < RAND_PASS_LEN) { 				/* Create random password */
+		while(c < max(RAND_PASS_LEN, cfg.min_pwlen)) { 				/* Create random password */
 			useron.pass[c]=sbbs_random(43)+'0';
 			if(IS_ALPHANUMERIC(useron.pass[c]))
 				c++;