diff --git a/src/sbbs3/scfg/scfgxtrn.c b/src/sbbs3/scfg/scfgxtrn.c
index 41ff2aa0b7e16e20d914499ef77ffd35f72fb7da..3da9f203468094b304bd724a5105fa5b71fca4e1 100644
--- a/src/sbbs3/scfg/scfgxtrn.c
+++ b/src/sbbs3/scfg/scfgxtrn.c
@@ -43,6 +43,97 @@ char *daystr(char days);
 
 static void hotkey_cfg(void);
 
+static char* dropfile(int type, ulong misc)
+{
+	static char str[128];
+	char fname[64]="";
+
+	switch(type) {
+		case XTRN_SBBS:
+			strcpy(fname,"XTRN.DAT");
+			break;
+		case XTRN_WWIV:
+			strcpy(fname,"CHAIN.TXT");
+			break;
+		case XTRN_GAP:
+			strcpy(fname,"DOOR.SYS");
+			break;
+		case XTRN_RBBS:
+			strcpy(fname,"DORINFO#.DEF");
+			break;
+		case XTRN_RBBS1:
+			strcpy(fname,"DORINFO1.DEF");
+            break;
+		case XTRN_WILDCAT:
+			strcpy(fname,"CALLINFO.BBS");
+			break;
+		case XTRN_PCBOARD:
+			strcpy(fname,"PCBOARD.SYS");
+			break;
+		case XTRN_SPITFIRE:
+			strcpy(fname,"SFDOORS.DAT");
+			break;
+		case XTRN_UTI:
+			strcpy(fname,"UTIDOOR.TXT");
+			break;
+		case XTRN_SR:
+			strcpy(fname,"DOORFILE.SR");
+			break;
+		case XTRN_TRIBBS:
+			strcpy(fname,"TRIBBS.SYS");
+			break;
+        case XTRN_DOOR32:
+            strcpy(fname,"DOOR32.SYS");
+            break;
+	}
+
+	if(misc&XTRN_LWRCASE)
+		strlwr(fname);
+
+	switch(type) {
+		case XTRN_SBBS:
+			sprintf(str,"%-15s %s","Synchronet",fname);
+			break;
+		case XTRN_WWIV:
+			sprintf(str,"%-15s %s","WWIV",fname);
+			break;
+		case XTRN_GAP:
+			sprintf(str,"%-15s %s","GAP",fname);
+			break;
+		case XTRN_RBBS:
+			sprintf(str,"%-15s %s","RBBS/QuickBBS",fname);
+			break;
+		case XTRN_RBBS1:
+			sprintf(str,"%-15s %s","RBBS/QuickBBS",fname);
+            break;
+		case XTRN_WILDCAT:
+			sprintf(str,"%-15s %s","Wildcat",fname);
+			break;
+		case XTRN_PCBOARD:
+			sprintf(str,"%-15s %s","PCBoard",fname);
+			break;
+		case XTRN_SPITFIRE:
+			sprintf(str,"%-15s %s","SpitFire",fname);
+			break;
+		case XTRN_UTI:
+			sprintf(str,"%-15s %s","MegaMail",fname);
+			break;
+		case XTRN_SR:
+			sprintf(str,"%-15s %s","Solar Realms",fname);
+			break;
+		case XTRN_TRIBBS:
+			sprintf(str,"%-15s %s","TriBBS",fname);
+			break;
+        case XTRN_DOOR32:
+            sprintf(str,"%-15s %s","Mystic",fname);
+            break;
+		default:
+			strcpy(str,"None");
+			break; 
+	}
+	return(str);
+}
+
 void xprogs_cfg()
 {
 	static int xprogs_dflt;
@@ -678,48 +769,9 @@ online program name.
 		if(cfg.xtrn[i]->misc&EVENTONLY && cfg.xtrn[i]->event)
 			strcat(str,", Only");
 		sprintf(opt[k++],"%-27.27s%s","Execute on Event",str);
-		switch(cfg.xtrn[i]->type) {
-			case XTRN_SBBS:
-				sprintf(str,"%-15s %s","Synchronet","XTRN.DAT");
-				break;
-			case XTRN_WWIV:
-				sprintf(str,"%-15s %s","WWIV","CHAIN.TXT");
-				break;
-			case XTRN_GAP:
-				sprintf(str,"%-15s %s","GAP","DOOR.SYS");
-				break;
-			case XTRN_RBBS:
-				sprintf(str,"%-15s %s","RBBS/QuickBBS","DORINFO#.DEF");
-				break;
-			case XTRN_RBBS1:
-				sprintf(str,"%-15s %s","RBBS/QuickBBS","DORINFO1.DEF");
-                break;
-			case XTRN_WILDCAT:
-				sprintf(str,"%-15s %s","Wildcat","CALLINFO.BBS");
-				break;
-			case XTRN_PCBOARD:
-				sprintf(str,"%-15s %s","PCBoard","PCBOARD.SYS");
-				break;
-			case XTRN_SPITFIRE:
-				sprintf(str,"%-15s %s","SpitFire","SFDOORS.DAT");
-				break;
-			case XTRN_UTI:
-				sprintf(str,"%-15s %s","MegaMail","UTIDOOR.TXT");
-				break;
-			case XTRN_SR:
-				sprintf(str,"%-15s %s","Solar Realms","DOORFILE.SR");
-				break;
-			case XTRN_TRIBBS:
-				sprintf(str,"%-15s %s","TriBBS","TRIBBS.SYS");
-				break;
-            case XTRN_DOOR32:
-                sprintf(str,"%-15s %s","Mystic","DOOR32.SYS");
-                break;
-			default:
-				strcpy(str,"None");
-				break; }
 		sprintf(opt[k++],"%-23.23s%-4s%s","BBS Drop File Type"
-			,cfg.xtrn[i]->misc&REALNAME ? "(R)":nulstr,str);
+			,cfg.xtrn[i]->misc&REALNAME ? "(R)":nulstr
+			,dropfile(cfg.xtrn[i]->type,cfg.xtrn[i]->misc));
 		sprintf(opt[k++],"%-27.27s%s","Place Drop File In"
 			,cfg.xtrn[i]->misc&STARTUPDIR ? "Start-Up Directory":"Node Directory");
 		sprintf(opt[k++],"Time Options...");
@@ -1052,7 +1104,24 @@ format, select the file format from the list.
 						uifc.changes=TRUE; }
 					else if(k==1 && cfg.xtrn[i]->misc&REALNAME) {
 						cfg.xtrn[i]->misc&=~REALNAME;
-						uifc.changes=TRUE; } }
+						uifc.changes=TRUE; 
+					} 
+				}
+				if(cfg.xtrn[i]->type) {
+					strcpy(opt[0],"Yes");
+					strcpy(opt[1],"No");
+					opt[2][0]=0;
+					k=cfg.xtrn[i]->misc&XTRN_LWRCASE ? 0:1;
+					k=uifc.list(WIN_MID|WIN_SAV,0,0,0,&k,0,"Lowercase Filename",opt);
+					if(k==0 && !(cfg.xtrn[i]->misc&XTRN_LWRCASE)) {
+						cfg.xtrn[i]->misc|=XTRN_LWRCASE;
+						uifc.changes=TRUE; 
+					}
+					else if(k==1 && cfg.xtrn[i]->misc&XTRN_LWRCASE) {
+						cfg.xtrn[i]->misc&=~XTRN_LWRCASE;
+						uifc.changes=TRUE; 
+					} 
+				}
 				break;
 			case 14:
 				k=0;
@@ -1312,47 +1381,8 @@ This is the internal code for the external editor.
 			,cfg.xedit[i]->misc&EXPANDLF ? "Yes":"No");
 		sprintf(opt[k++],"%-32.32s%s","Strip FidoNet Kludge Lines"
 			,cfg.xedit[i]->misc&STRIPKLUDGE ? "Yes":"No");
-		switch(cfg.xedit[i]->type) {
-			case XTRN_SBBS:
-				sprintf(str,"%-15s %s","Synchronet","XTRN.DAT");
-				break;
-			case XTRN_WWIV:
-				sprintf(str,"%-15s %s","WWIV","CHAIN.TXT");
-				break;
-			case XTRN_GAP:
-				sprintf(str,"%-15s %s","GAP","DOOR.SYS");
-				break;
-			case XTRN_RBBS:
-				sprintf(str,"%-15s %s","RBBS/QuickBBS","DORINFO#.DEF");
-				break;
-			case XTRN_RBBS1:
-				sprintf(str,"%-15s %s","RBBS/QuickBBS","DORINFO1.DEF");
-                break;
-			case XTRN_WILDCAT:
-				sprintf(str,"%-15s %s","Wildcat","CALLINFO.BBS");
-				break;
-			case XTRN_PCBOARD:
-				sprintf(str,"%-15s %s","PCBoard","PCBOARD.SYS");
-				break;
-			case XTRN_SPITFIRE:
-				sprintf(str,"%-15s %s","SpitFire","SFDOORS.DAT");
-				break;
-			case XTRN_UTI:
-				sprintf(str,"%-15s %s","MegaMail","UTIDOOR.TXT");
-				break;
-			case XTRN_SR:
-				sprintf(str,"%-15s %s","Solar Realms","DOORFILE.SR");
-				break;
-			case XTRN_TRIBBS:
-				sprintf(str,"%-15s %s","TriBBS","TRIBBS.SYS");
-                break;
-			case XTRN_DOOR32:
-				sprintf(str,"%-15s %s","Mystic","DOOR32.SYS");
-                break;
-			default:
-				strcpy(str,"None");
-                break; }
-		sprintf(opt[k++],"%-32.32s%s","BBS Drop File Type",str);
+		sprintf(opt[k++],"%-32.32s%s","BBS Drop File Type"
+			,dropfile(cfg.xedit[i]->type,cfg.xedit[i]->misc));
         opt[k][0]=0;
 		SETHELP(WHERE);
 /*
@@ -1619,7 +1649,23 @@ format, select the file format from the list.
 					cfg.xedit[i]->type=k;
                     if(cfg.xedit[i]->type==XTRN_DOOR32)
                         cfg.xedit[i]->misc|=XTRN_NATIVE;
-					uifc.changes=TRUE; }
+					uifc.changes=TRUE; 
+				}
+				if(cfg.xedit[i]->type) {
+					strcpy(opt[0],"Yes");
+					strcpy(opt[1],"No");
+					opt[2][0]=0;
+					k=cfg.xedit[i]->misc&XTRN_LWRCASE ? 0:1;
+					k=uifc.list(WIN_MID|WIN_SAV,0,0,0,&k,0,"Lowercase Filename",opt);
+					if(k==0 && !(cfg.xedit[i]->misc&XTRN_LWRCASE)) {
+						cfg.xedit[i]->misc|=XTRN_LWRCASE;
+						uifc.changes=TRUE; 
+					}
+					else if(k==1 && cfg.xedit[i]->misc&XTRN_LWRCASE) {
+						cfg.xedit[i]->misc&=~XTRN_LWRCASE;
+						uifc.changes=TRUE; 
+					} 
+				}
 				break;
 
 				} } }