diff --git a/SRC/SCFG/SCFG.C b/SRC/SCFG/SCFG.C
index a416de70f4e5d40ec04b242852cd9955fb1c1a53..be89b1f734564f5509f7bf9181278ea35cd7416c 100644
--- a/SRC/SCFG/SCFG.C
+++ b/SRC/SCFG/SCFG.C
@@ -158,12 +158,12 @@ bail(1);
 
 void read_max(uint *max, uint MAX, FILE *stream)
 {
-	char str[256];
+	char str[256] = "";
 	int i;
 
 readline(&i,str,5,stream);
 (*max)=atoi(str);
-if((*max)>MAX) (*max)=MAX;
+if((*max) < 1 || (*max)>MAX) (*max)=MAX;
 }
 
 int main(int argc, char **argv)
@@ -247,6 +247,7 @@ read_max(&max_phubs,MAX_PHUBS,instream);
 read_max(&max_qhubs,MAX_QHUBS,instream);
 read_max(&max_qsubs,MAX_QSUBS,instream);
 read_max(&max_results,MAX_RESULTS,instream);
+read_max(&max_chatacts,MAX_CHATACTS,instream);
 fclose(instream);
 
 if((node_path=(char **)MALLOC(sizeof(char *)*MAX_NODES))==NULL)
@@ -320,6 +321,9 @@ if(max_chans)
 	if((chan=(chan_t **)MALLOC(sizeof(chan_t *)*max_chans))==NULL)
 		allocfail(sizeof(chan_t *)*max_chans);
 
+if(max_chatacts)
+	if((chatact=(chatact_t **)MALLOC(sizeof(chatact_t *)*max_chatacts))==NULL)
+		allocfail(sizeof(chatact_t *)*max_chatacts);
 
 txt.reading="\r\nReading %s...";
 txt.readit="\rRead %s       ";