diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index b2dca8c89d5293af05500660a1dbd6128373820a..c498457d5eaf93b8ed042540321416e713e06692 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -6124,8 +6124,7 @@ void DLLCALL ftp_server(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 	   	prep_dir(scfg.ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		if(!isdir(scfg.temp_dir) && MKDIR(scfg.temp_dir) != 0) {
-			lprintf(LOG_ERR, "Error %d creating temp directory: %s", errno, scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1,__LINE__);
 			break;
 		}
diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index e7646f753608608ece04a776437bc9479823b087..ff6ae69c91ba2c385cb131e8a9e5bb6a1fa1924f 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -6084,13 +6084,11 @@ void DLLCALL mail_server(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 	   	prep_dir(scfg.ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		MKDIR(scfg.temp_dir);
-		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
-		if(!isdir(scfg.temp_dir)) {
-			lprintf(LOG_CRIT,"!Invalid temp directory: %s", scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1);
 			return;
 		}
+		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
 
 		/* Parse the mailproc[.host].ini */
 		mailproc_list=NULL;
diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index f7ed01284739d255d4bec12bba614ee11570aa99..c7d2a77a78a8f176ed9872f541335a2ca8654ecd 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -1837,13 +1837,11 @@ void DLLCALL services_thread(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 	   	prep_dir(scfg.ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		MKDIR(scfg.temp_dir);
-		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
-		if(!isdir(scfg.temp_dir)) {
-			lprintf(LOG_CRIT,"!Invalid temp directory: %s", scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1);
 			return;
 		}
+		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
 
 		if((t=checktime())!=0) {   /* Check binary time */
 			lprintf(LOG_ERR,"!TIME PROBLEM (%ld)",t);
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 53619e75dec6e4dcf3613682c72c3770ee587024..d2f7b1552565cc55d595aff4d5ae357ecfcd023c 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -7033,13 +7033,11 @@ void DLLCALL web_server(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 		prep_dir(startup->ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
-		MKDIR(scfg.temp_dir);
-		if(!isdir(scfg.temp_dir)) {
-			lprintf(LOG_CRIT,"!Invalid temp directory: %s", scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1);
 			return;
 		}
+		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
 		lprintf(LOG_DEBUG,"Root directory: %s", root_dir);
 		lprintf(LOG_DEBUG,"Error directory: %s", error_dir);
 		lprintf(LOG_DEBUG,"CGI directory: %s", cgi_dir);