diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp
index 48426793c0107b3c26d1b7b91a93e73795e015ab..ceb183e3a096a820b7a221b1e103470d41789c78 100644
--- a/src/sbbs3/atcodes.cpp
+++ b/src/sbbs3/atcodes.cpp
@@ -1587,7 +1587,9 @@ const char* sbbs_t::atcode(const char* sp, char* str, size_t maxlen, int* pmode,
 	}
 
 	if (!strncmp(sp, "EXEC:", 5)) {
-		exec_bin(sp + 5, &main_csi);
+		SAFECOPY(tmp, sp + 5);
+		c_unescape_str(tmp);
+		exec_bin(tmp, &main_csi);
 		return nulstr;
 	}