diff --git a/server/apreq_parser_header.c b/server/apreq_parser_header.c
index 19588be..7067e58 100644
--- a/server/apreq_parser_header.c
+++ b/server/apreq_parser_header.c
@@ -89,7 +89,7 @@ static apr_status_t split_header_line(apreq_param_t **p,
         if (s != APR_SUCCESS)
             return s;
 
-        assert(nlen >= len);
+	if (!(nlen >= len)) { return APR_EBADARG; } assert(nlen >= len);
         end->iov_len = len;
         nlen -= len;
 
@@ -103,13 +103,13 @@ static apr_status_t split_header_line(apreq_param_t **p,
         if (s != APR_SUCCESS)
             return s;
 
-        assert(glen >= dlen);
+	if (!(glen >= dlen)) { return APR_EBADARG; } assert(glen >= dlen);
         glen -= dlen;
         e = APR_BUCKET_NEXT(e);
     }
 
     /* copy value */
-    assert(vlen > 0);
+    if (!(vlen > 0)) { return APR_EBADARG; } assert(vlen > 0);
     dest = v->data;
     while (vlen > 0) {
 
@@ -119,12 +119,12 @@ static apr_status_t split_header_line(apreq_param_t **p,
 
         memcpy(dest, data, dlen);
         dest += dlen;
-        assert(vlen >= dlen);
+	if (!(vlen >= dlen)) { return APR_EBADARG; } assert(vlen >= dlen);
         vlen -= dlen;
         e = APR_BUCKET_NEXT(e);
     }
 
-    assert(dest[-1] == '\n');
+    if (!(dest[-1] == '\n')) { return APR_EBADARG; } assert(dest[-1] == '\n');
 
     if (dest[-2] == '\r')
         --dest;
