diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp
index ebdfd1d1548c6cda8b3f9d4babfac8de6bf15858..e8318ce72e78e00941947e2a91ec0bdc7beeb2c2 100644
--- a/src/sbbs3/atcodes.cpp
+++ b/src/sbbs3/atcodes.cpp
@@ -1126,6 +1126,21 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, long* pmode, bool
 		return(str);
 	}
 
+	if(strcmp(sp,"FREESPACEM") == 0) {
+		safe_snprintf(str,maxlen,"%lu",getfreediskspace(cfg.temp_dir, 1024 * 1024));
+		return(str);
+	}
+
+	if(strcmp(sp,"FREESPACEG") == 0) {
+		safe_snprintf(str,maxlen,"%lu",getfreediskspace(cfg.temp_dir, 1024 * 1024 * 1024));
+		return(str);
+	}
+
+	if(strcmp(sp,"FREESPACET") == 0) {
+		safe_snprintf(str,maxlen,"%lu",getfreediskspace(cfg.temp_dir, 1024 * 1024 * 1024) / 1024);
+		return(str);
+	}
+
 	if(!strcmp(sp,"UPBYTES")) {
 		safe_snprintf(str,maxlen,"%lu",useron.ulb);
 		return(str);