diff --git a/src/sbbs3/scfg/scfgsub.c b/src/sbbs3/scfg/scfgsub.c
index 8efa81c2d3b1cf663b199462b09144b515a20d75..c83416deafeb917e6606e01748d24168d3ea4a15 100644
--- a/src/sbbs3/scfg/scfgsub.c
+++ b/src/sbbs3/scfg/scfgsub.c
@@ -88,6 +88,7 @@ bool new_sub(unsigned new_subnum, unsigned group_num)
 				cfg.qhub[q]->sub[s]++;
 #endif
 
+	new_subboard->subnum = new_subnum;
 	cfg.sub[new_subnum] = new_subboard;
 	cfg.total_subs++;
 	return true;
diff --git a/src/sbbs3/scfg/scfgxfr2.c b/src/sbbs3/scfg/scfgxfr2.c
index 694e32c27e448122eb184e0d055fab6e62cc1482..efd387faae4b8c6f5a124bf554cfb26c5b260d74 100644
--- a/src/sbbs3/scfg/scfgxfr2.c
+++ b/src/sbbs3/scfg/scfgxfr2.c
@@ -72,6 +72,7 @@ static bool new_dir(unsigned new_dirnum, unsigned libnum)
 	for (unsigned u = cfg.total_dirs; u > new_dirnum; u--)
 		cfg.dir[u] = cfg.dir[u - 1];
 
+	new_directory->dirnum = new_dirnum;
 	cfg.dir[new_dirnum] = new_directory;
 	cfg.total_dirs++;
 	return true;
@@ -900,7 +901,7 @@ void xfer_cfg()
 						uifc.changes=1; 
 					}
 					fclose(stream);
-					if(ported)
+					if(ported && cfg.lib[i]->sort)
 						sort_dirs(i);
 					uifc.pop(0);
 					sprintf(str,"%lu File Areas Imported Successfully (%lu added)",ported, added);