diff --git a/mongoose.c b/mongoose.c
index fee10c57e907f57e3c0a4d2720e9a766a2cd6af1..cfb6e34f998640f8dfef6e81c55869650d67ad5b 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -3922,7 +3922,8 @@ static void open_local_endpoint(struct connection *conn, int skip_user) {
 #if MONGOOSE_POST_SIZE_LIMIT > 1
     {
       const char *cl = mg_get_header(&conn->mg_conn, "Content-Length");
-      if (!strcmp(conn->mg_conn.request_method, "POST") &&
+      if ((strcmp(conn->mg_conn.request_method, "POST") == 0 ||
+           strcmp(conn->mg_conn.request_method, "PUT") == 0) &&
           (cl == NULL || to64(cl) > MONGOOSE_POST_SIZE_LIMIT)) {
         send_http_error(conn, 500, "POST size > %zu",
                         (size_t) MONGOOSE_POST_SIZE_LIMIT);