diff --git a/src/sbbs3/js_file_area.c b/src/sbbs3/js_file_area.c
index c322d87a20bc30704e9c852e0480fd5a72fa6f58..969f85b6cbc129d8b7cf76cbb93b19eb882338b7 100644
--- a/src/sbbs3/js_file_area.c
+++ b/src/sbbs3/js_file_area.c
@@ -128,10 +128,10 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_
 		return(NULL);
 
 	for(l=0;l<cfg->total_libs;l++) {
-
+#if 0
 		if(user==NULL && (*cfg->lib[l]->ar)!=AR_NULL)
 			continue;
-
+#endif
 		if(user!=NULL && !chk_ar(cfg,cfg->lib[l]->ar,user))
 			continue;
 
@@ -176,10 +176,10 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_
 		for(d=0;d<cfg->total_dirs;d++) {
 			if(cfg->dir[d]->lib!=l)
 				continue;
-
+#if 0
 			if(user==NULL && (*cfg->dir[d]->ar)!=AR_NULL)
 				continue;
-
+#endif
 			if(user!=NULL && !chk_ar(cfg,cfg->dir[d]->ar,user))
 				continue;
 
@@ -288,14 +288,17 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_
 			if(!JS_SetProperty(cx, dirobj, "can_download", &val))
 				return(NULL);
 
-			if(user==NULL || chk_ar(cfg,cfg->dir[d]->ex_ar,user))
+			if(is_download_free(cfg,d,user))
 				val=BOOLEAN_TO_JSVAL(JS_TRUE);
 			else
 				val=BOOLEAN_TO_JSVAL(JS_FALSE);
 			if(!JS_SetProperty(cx, dirobj, "is_exempt", &val))
 				return(NULL);
 
-			if(user==NULL || chk_ar(cfg,cfg->dir[d]->op_ar,user))
+			if(user!=NULL 
+				&& (user->level>=SYSOP_LEVEL 
+					|| (cfg->dir[d]->op_ar[0]!=0 
+						&& chk_ar(cfg,cfg->dir[d]->op_ar,user))))
 				val=BOOLEAN_TO_JSVAL(JS_TRUE);
 			else
 				val=BOOLEAN_TO_JSVAL(JS_FALSE);