diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index aad834e4b81b0934b8ef36beb18ff957015b0fe2..ae1a8af9bf401cd0f95a5fdbe362714edd30b6a0 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -422,7 +422,7 @@ int sockreadline(SOCKET socket, char* buf, int len, time_t* lastactive)
 	int		i,rd=0;
 	
 	while(rd<len-1) {
-		i= recv(socket, &ch, 1, 0);
+		i=recv(socket, &ch, 1, 0);
 		if(server_socket==INVALID_SOCKET) {
 			sockprintf(socket,"421 Server downed, aborting.");
 			lprintf("%04d Server downed, aborting.",socket);
@@ -1779,7 +1779,9 @@ static void ctrl_thread(void* arg)
 				globfree(&g);
 				fclose(fp);
 				filexfer(&data_addr,sock,pasv_sock,&data_sock,fname,0L
-					,&transfer_inprogress,&transfer_aborted,TRUE,TRUE
+					,&transfer_inprogress,&transfer_aborted
+					,startup->options&FTP_OPT_KEEP_TEMP_FILES ? FALSE : TRUE
+					,TRUE
 					,&lastactive,&user,-1,FALSE,FALSE,FALSE,NULL);
 				continue;
 			} /* Local LIST/NLST */
@@ -2249,7 +2251,9 @@ static void ctrl_thread(void* arg)
 
 			fclose(fp);
 			filexfer(&data_addr,sock,pasv_sock,&data_sock,fname,0L
-				,&transfer_inprogress,&transfer_aborted,TRUE,TRUE
+				,&transfer_inprogress,&transfer_aborted
+				,startup->options&FTP_OPT_KEEP_TEMP_FILES ? FALSE : TRUE
+				,TRUE
 				,&lastactive,&user,dir,FALSE,FALSE,FALSE,NULL);
 			continue;
 		}
@@ -2384,7 +2388,10 @@ static void ctrl_thread(void* arg)
 				success=TRUE;
 				credits=FALSE;
 				tmpfile=TRUE;
-				delfile=TRUE;
+				if(startup->options&FTP_OPT_KEEP_TEMP_FILES)
+					delfile=FALSE;
+				else
+					delfile=TRUE;
 				fprintf(fp,"%-*s File/Folder Descriptions\r\n"
 					,INDEX_FNAME_LEN,startup->index_file_name);
 				if(lib<0) {
diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h
index 590b86dda44958f971273d74c041b9e6fdae07cb..9c1a4870b899d316f017086e1c2ce20793bf722d 100644
--- a/src/sbbs3/ftpsrvr.h
+++ b/src/sbbs3/ftpsrvr.h
@@ -92,6 +92,7 @@ typedef struct {
 #define FTP_OPT_ALLOW_QWK			(1<<4)
 #define FTP_OPT_NO_LOCAL_FSYS		(1<<5)
 #define FTP_OPT_DIR_FILES			(1<<6)	/* Allow access to files in dir but not in database */
+#define FTP_OPT_KEEP_TEMP_FILES		(1<<7)	/* Don't delete temp files (for debugging) */
 #define FTP_OPT_NO_HOST_LOOKUP		(1<<11)
 #define FTP_OPT_LOCAL_TIMEZONE		(1<<30)	/* Don't force UCT/GMT */
 #define FTP_OPT_MUTE				(1<<31)