diff --git a/mongoose.c b/mongoose.c
index bb5b43e487b54325bbe7c08765a1647a946cf154..def91b018b9dd75b5ed2b669260d7c72577084b6 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -4104,7 +4104,7 @@ static int lsp_mg_read(lua_State *L) {
   char buf[1024];
   int len = mg_read(conn, buf, sizeof(buf));
 
-  lua_settop(L, 0);
+  if (!len) return 0;
   lua_pushlstring(L, buf, len);
 
   return 1;