diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index c397eaafb4ecc7a15b88ca9bad32232a4c043c15..9b30e397ff1d908783da6dcfbd15177706fbc15a 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -2041,6 +2041,8 @@ void input_thread(void *arg)
 #endif
 				if(!sbbs->online)	// sbbs_t::hangup() called?
 					break;
+				if(ERROR_VALUE == EAGAIN)
+					continue;
 	        	if(ERROR_VALUE == ENOTSOCK)
     	            lprintf(LOG_NOTICE,"Node %d socket closed by peer on receive", sbbs->cfg.node_num);
         	    else if(ERROR_VALUE==ECONNRESET)