diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp
index 385757a847e4100fa7aa1faba68f8c3aa2c3de3c..9dbfc7f7ae1f6be0a1365ffc3e238caec67f5502 100644
--- a/src/sbbs3/writemsg.cpp
+++ b/src/sbbs3/writemsg.cpp
@@ -604,7 +604,7 @@ bool sbbs_t::writemsg(const char *fname, const char *top, char *subj, long mode,
 		rioctl(IOSM|PAUSE|ABORT); 
 
 		checkline();
-		if(!online && flength(msgtmp) > 0)	 { // save draft message due to disconnection
+		if(!online && (flength(msgtmp) > 0) && (useron.number > 0) && !(useron.rest & FLAG('G'))) { // save draft message due to disconnection
 			if(mv(msgtmp, draft, /* copy: */true) == 0) {
 				user_set_property(&cfg, useron.number, draft_desc, "subject", subj);
 				user_set_time_property(&cfg, useron.number, draft_desc, "created", time(NULL));