diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index ba9a95c1b1d7947207eb3e1f81935413515dcf10..dd4f6be84f9cd81da26a5cab9750cc763b3ec624 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -3351,9 +3351,18 @@ static void read_webctrl_section(FILE *file, char *section, http_session_t *sess
 	int i;
 	char str[MAX_PATH+1];
 	named_string_t **values;
+	char *p;
 
-	if(iniReadString(file, section, "AccessRequirements", session->req.ars,str)==str)
-		SAFECOPY(session->req.ars,str);
+	p = iniReadExistingString(file, section, "AccessRequirements", session->req.ars, str);
+	/*
+	 * If p == NULL, the key doesn't exist, retain default 
+	 * If p == default, zero-length string present, truncate req.ars
+	 * Otherwise, p is new value and is updated
+	 */
+	if (p == session->req.ars)
+		session->req.ars[0] = 0;
+	else if (p != NULL)
+		SAFECOPY(session->req.ars,p);
 	if(iniReadString(file, section, "Realm", scfg.sys_name,str)==str) {
 		FREE_AND_NULL(session->req.realm);
 		/* FREE()d in close_request() */