diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c
index 734c60139c39e0f3ef7a5906e4ee06f7fb1d1d8d..7747b9b8a6086782dca36cffc9f21623667c8beb 100644
--- a/src/sbbs3/sexyz.c
+++ b/src/sbbs3/sexyz.c
@@ -1280,10 +1280,7 @@ static int receive_files(char** fname_list, int fnames)
 						break;
 					}
 
-					if(mode&GMODE)
-						return(-1);
-
-					if(++errors>xm.max_errors) {
+					if(++errors>xm.max_errors || (mode&GMODE)) {
 						lprintf(LOG_ERR,"Too many errors (%u)",errors);
 						xmodem_cancel(&xm);
 						break;