diff --git a/src/sbbs3/scfg/Makefile b/src/sbbs3/scfg/Makefile
index 6a1567194752d64b477bf7b70822f02b66e6d0ed..62227bad5e943534603bccda2f7a0d8ce83b9e7b 100644
--- a/src/sbbs3/scfg/Makefile
+++ b/src/sbbs3/scfg/Makefile
@@ -22,7 +22,7 @@ XPDEV	=   	..\..\xpdev
 UIFC	=	..\..\uifc
 LIB	=	..\..\..\lib
 INCLUDE	=	..\..\..\include
-CFLAGS	=	-M -I..;$(UIFC);$(XPDEV) 
+CFLAGS	=	-DSCFG -M -I..;$(UIFC);$(XPDEV) 
 DELETE	=	echo y | del 
 
 .path.c = .;..;$(UIFC);$(XPDEV)
diff --git a/src/sbbs3/scfglib.h b/src/sbbs3/scfglib.h
index e1e301779187fe60145e44984e798642f7410a94..94e652cab29cdf3bc478cf1ab7f4926a7a7d460d 100644
--- a/src/sbbs3/scfglib.h
+++ b/src/sbbs3/scfglib.h
@@ -57,7 +57,13 @@ extern const uchar* nular;
 #define FREE_AND_NULL(x) if(x!=NULL) { FREE(x); x=NULL; }
 
 /* allocated with arstr() */	
-#define FREE_AR(x)		if(x!=NULL && x!=nular)	{ FREE(x); x=NULL; }	
+#define FREE_AR(x)		if(x!=NULL && x!=nular)	{ FREE(x); x=NULL; }
+
+#if defined(SCFG)	/* Don't compile AR strings for SCFG */
+	#define ARSTR(str,cfg)	NULL
+#else
+	#define ARSTR(str,cfg)	arstr(NULL,str,cfg)
+#endif
 
 char*	get_alloc(long *offset, char *outstr, int maxlen, FILE *instream);
 BOOL	allocerr(FILE*, char* error, long offset, char *fname, uint size);
diff --git a/src/sbbs3/scfglib1.c b/src/sbbs3/scfglib1.c
index 458e5876388e13a3f0856f00e755470e9152e090..7dae9b3e05bc14e4120560ed8723390652082db4 100644
--- a/src/sbbs3/scfglib1.c
+++ b/src/sbbs3/scfglib1.c
@@ -95,7 +95,7 @@ BOOL read_node_cfg(scfg_t* cfg, char* error)
 	get_int(cfg->node_valuser,instream);
 	get_int(cfg->node_minbps,instream);
 	get_str(cfg->node_arstr,instream);
-	cfg->node_ar=arstr(NULL, cfg->node_arstr, cfg);
+	cfg->node_ar=ARSTR(cfg->node_arstr, cfg);
 
 	get_int(cfg->node_dollars_per_call,instream);
 	get_str(cfg->node_editor,instream);
@@ -242,7 +242,7 @@ BOOL read_main_cfg(scfg_t* cfg, char* error)
 	get_int(cfg->sys_def_stat,instream); 	/* default status line */
 
 	get_str(cfg->sys_chat_arstr,instream);
-	cfg->sys_chat_ar=arstr(NULL,cfg->sys_chat_arstr,cfg);
+	cfg->sys_chat_ar=ARSTR(cfg->sys_chat_arstr,cfg);
 
 	get_int(cfg->cdt_min_value,instream);
 	get_int(cfg->max_minutes,instream);
@@ -391,7 +391,7 @@ BOOL read_main_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->shell[i]->name,instream);
 		get_str(cfg->shell[i]->code,instream);
 		get_str(cfg->shell[i]->arstr,instream);
-		cfg->shell[i]->ar=arstr(NULL,cfg->shell[i]->arstr,cfg);
+		cfg->shell[i]->ar=ARSTR(cfg->shell[i]->arstr,cfg);
 		get_int(cfg->shell[i]->misc,instream);
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -430,7 +430,7 @@ BOOL read_msgs_cfg(scfg_t* cfg, char* error)
 	get_int(cfg->mail_maxcrcs,instream);
 	get_int(cfg->mail_maxage,instream);
 	get_str(cfg->preqwk_arstr,instream);
-	cfg->preqwk_ar=arstr(NULL,cfg->preqwk_arstr,cfg);
+	cfg->preqwk_ar=ARSTR(cfg->preqwk_arstr,cfg);
 
 	get_int(cfg->smb_retry_time,instream);	 /* odd byte */
 	if(!cfg->smb_retry_time)
@@ -465,7 +465,7 @@ BOOL read_msgs_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->grp[i]->sname,instream);
 
 		get_str(cfg->grp[i]->arstr,instream);
-		cfg->grp[i]->ar=arstr(NULL,cfg->grp[i]->arstr,cfg);
+		cfg->grp[i]->ar=ARSTR(cfg->grp[i]->arstr,cfg);
 
 		get_str(cfg->grp[i]->code_prefix,instream);
 
@@ -505,10 +505,10 @@ BOOL read_msgs_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->sub[i]->post_arstr,instream);
 		get_str(cfg->sub[i]->op_arstr,instream);
 
-		cfg->sub[i]->ar=arstr(NULL,cfg->sub[i]->arstr,cfg);
-		cfg->sub[i]->read_ar=arstr(NULL,cfg->sub[i]->read_arstr,cfg);
-		cfg->sub[i]->post_ar=arstr(NULL,cfg->sub[i]->post_arstr,cfg);
-		cfg->sub[i]->op_ar=arstr(NULL,cfg->sub[i]->op_arstr,cfg);
+		cfg->sub[i]->ar=ARSTR(cfg->sub[i]->arstr,cfg);
+		cfg->sub[i]->read_ar=ARSTR(cfg->sub[i]->read_arstr,cfg);
+		cfg->sub[i]->post_ar=ARSTR(cfg->sub[i]->post_arstr,cfg);
+		cfg->sub[i]->op_ar=ARSTR(cfg->sub[i]->op_arstr,cfg);
 
 		get_int(cfg->sub[i]->misc,instream);
 
@@ -540,7 +540,7 @@ BOOL read_msgs_cfg(scfg_t* cfg, char* error)
 #endif
 
 		get_str(cfg->sub[i]->mod_arstr,instream);
-		cfg->sub[i]->mod_ar=arstr(NULL,cfg->sub[i]->mod_arstr,cfg);
+		cfg->sub[i]->mod_ar=ARSTR(cfg->sub[i]->mod_arstr,cfg);
 
 		get_int(cfg->sub[i]->qwkconf,instream);
 		get_int(c,instream);
diff --git a/src/sbbs3/scfglib2.c b/src/sbbs3/scfglib2.c
index 6d2331e96ca6c6548c9cdbb5a573a6c8ab2884dd..1e94d74688e19527e3eace4f376da6c64fd13f8a 100644
--- a/src/sbbs3/scfglib2.c
+++ b/src/sbbs3/scfglib2.c
@@ -95,7 +95,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->fextr[i]->ext,instream);
 		get_str(cfg->fextr[i]->cmd,instream);
 		get_str(cfg->fextr[i]->arstr,instream);
-		cfg->fextr[i]->ar=arstr(NULL,cfg->fextr[i]->arstr,cfg);
+		cfg->fextr[i]->ar=ARSTR(cfg->fextr[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -123,7 +123,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->fcomp[i]->ext,instream);
 		get_str(cfg->fcomp[i]->cmd,instream);
 		get_str(cfg->fcomp[i]->arstr,instream);
-		cfg->fcomp[i]->ar=arstr(NULL,cfg->fcomp[i]->arstr,cfg);
+		cfg->fcomp[i]->ar=ARSTR(cfg->fcomp[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -150,7 +150,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->fview[i]->ext,instream);
 		get_str(cfg->fview[i]->cmd,instream);
 		get_str(cfg->fview[i]->arstr,instream);
-		cfg->fview[i]->ar=arstr(NULL,cfg->fview[i]->arstr,cfg);
+		cfg->fview[i]->ar=ARSTR(cfg->fview[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -178,7 +178,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->ftest[i]->cmd,instream);
 		get_str(cfg->ftest[i]->workstr,instream);
 		get_str(cfg->ftest[i]->arstr,instream);
-		cfg->ftest[i]->ar=arstr(NULL,cfg->ftest[i]->arstr,cfg);
+		cfg->ftest[i]->ar=ARSTR(cfg->ftest[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -207,7 +207,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->dlevent[i]->cmd,instream);
 		get_str(cfg->dlevent[i]->workstr,instream);
 		get_str(cfg->dlevent[i]->arstr,instream);
-		cfg->dlevent[i]->ar=arstr(NULL,cfg->dlevent[i]->arstr,cfg);
+		cfg->dlevent[i]->ar=ARSTR(cfg->dlevent[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -243,7 +243,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->prot[i]->bicmd,instream);
 		get_int(cfg->prot[i]->misc,instream);
 		get_str(cfg->prot[i]->arstr,instream);
-		cfg->prot[i]->ar=arstr(NULL,cfg->prot[i]->arstr,cfg);
+		cfg->prot[i]->ar=ARSTR(cfg->prot[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -301,7 +301,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->lib[i]->sname,instream);
 
 		get_str(cfg->lib[i]->arstr,instream);
-		cfg->lib[i]->ar=arstr(NULL,cfg->lib[i]->arstr,cfg);
+		cfg->lib[i]->ar=ARSTR(cfg->lib[i]->arstr,cfg);
 
 		get_str(cfg->lib[i]->parent_path,instream);
 
@@ -358,10 +358,10 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->dir[i]->dl_arstr,instream);
 		get_str(cfg->dir[i]->op_arstr,instream);
 
-		cfg->dir[i]->ar=arstr(NULL,cfg->dir[i]->arstr,cfg);
-		cfg->dir[i]->ul_ar=arstr(NULL,cfg->dir[i]->ul_arstr,cfg);
-		cfg->dir[i]->dl_ar=arstr(NULL,cfg->dir[i]->dl_arstr,cfg);
-		cfg->dir[i]->op_ar=arstr(NULL,cfg->dir[i]->op_arstr,cfg);
+		cfg->dir[i]->ar=ARSTR(cfg->dir[i]->arstr,cfg);
+		cfg->dir[i]->ul_ar=ARSTR(cfg->dir[i]->ul_arstr,cfg);
+		cfg->dir[i]->dl_ar=ARSTR(cfg->dir[i]->dl_arstr,cfg);
+		cfg->dir[i]->op_ar=ARSTR(cfg->dir[i]->op_arstr,cfg);
 
 		get_str(cfg->dir[i]->path,instream);
 
@@ -375,7 +375,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_int(cfg->dir[i]->seqdev,instream);
 		get_int(cfg->dir[i]->sort,instream);
 		get_str(cfg->dir[i]->ex_arstr,instream);
-		cfg->dir[i]->ex_ar=arstr(NULL,cfg->dir[i]->ex_arstr,cfg);
+		cfg->dir[i]->ex_ar=ARSTR(cfg->dir[i]->ex_arstr,cfg);
 
 		get_int(cfg->dir[i]->maxage,instream);
 		get_int(cfg->dir[i]->up_pct,instream);
@@ -409,7 +409,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->txtsec[i]->name,instream);
 		get_str(cfg->txtsec[i]->code,instream);
 		get_str(cfg->txtsec[i]->arstr,instream);
-		cfg->txtsec[i]->ar=arstr(NULL,cfg->txtsec[i]->arstr,cfg);
+		cfg->txtsec[i]->ar=ARSTR(cfg->txtsec[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -482,7 +482,7 @@ BOOL read_xtrn_cfg(scfg_t* cfg, char* error)
 
 		get_int(cfg->xedit[i]->misc,instream);
 		get_str(cfg->xedit[i]->arstr,instream);
-		cfg->xedit[i]->ar=arstr(NULL,cfg->xedit[i]->arstr,cfg);
+		cfg->xedit[i]->ar=ARSTR(cfg->xedit[i]->arstr,cfg);
 
 		get_int(cfg->xedit[i]->type,instream);
 		get_int(c,instream);
@@ -514,7 +514,7 @@ BOOL read_xtrn_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->xtrnsec[i]->name,instream);
 		get_str(cfg->xtrnsec[i]->code,instream);
 		get_str(cfg->xtrnsec[i]->arstr,instream);
-		cfg->xtrnsec[i]->ar=arstr(NULL,cfg->xtrnsec[i]->arstr,cfg);
+		cfg->xtrnsec[i]->ar=ARSTR(cfg->xtrnsec[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -545,8 +545,8 @@ BOOL read_xtrn_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->xtrn[i]->code,instream);
 		get_str(cfg->xtrn[i]->arstr,instream);
 		get_str(cfg->xtrn[i]->run_arstr,instream);
-		cfg->xtrn[i]->ar=arstr(NULL,cfg->xtrn[i]->arstr,cfg);
-		cfg->xtrn[i]->run_ar=arstr(NULL,cfg->xtrn[i]->run_arstr,cfg);
+		cfg->xtrn[i]->ar=ARSTR(cfg->xtrn[i]->arstr,cfg);
+		cfg->xtrn[i]->run_ar=ARSTR(cfg->xtrn[i]->run_arstr,cfg);
 
 		get_int(cfg->xtrn[i]->type,instream);
 		get_int(cfg->xtrn[i]->misc,instream);
@@ -695,7 +695,7 @@ BOOL read_chat_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->guru[i]->code,instream);
 
 		get_str(cfg->guru[i]->arstr,instream);
-		cfg->guru[i]->ar=arstr(NULL,cfg->guru[i]->arstr,cfg);
+		cfg->guru[i]->ar=ARSTR(cfg->guru[i]->arstr,cfg);
 
 		for(j=0;j<8;j++)
 			get_int(n,instream);
@@ -777,7 +777,7 @@ BOOL read_chat_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->chan[i]->code,instream);
 
 		get_str(cfg->chan[i]->arstr,instream);
-		cfg->chan[i]->ar=arstr(NULL,cfg->chan[i]->arstr,cfg);
+		cfg->chan[i]->ar=ARSTR(cfg->chan[i]->arstr,cfg);
 
 		get_int(cfg->chan[i]->cost,instream);
 		get_int(cfg->chan[i]->guru,instream);
@@ -809,7 +809,7 @@ BOOL read_chat_cfg(scfg_t* cfg, char* error)
 		get_str(cfg->page[i]->cmd,instream);
 
 		get_str(cfg->page[i]->arstr,instream);
-		cfg->page[i]->ar=arstr(NULL,cfg->page[i]->arstr,cfg);
+		cfg->page[i]->ar=ARSTR(cfg->page[i]->arstr,cfg);
 
 		get_int(cfg->page[i]->misc,instream);
 		for(j=0;j<8;j++)