diff --git a/src/http/modules/ngx_http_range_filter_module.c b/src/http/modules/ngx_http_range_filter_module.c
index 05d64a0..c0a835c 100644
--- a/src/http/modules/ngx_http_range_filter_module.c
+++ b/src/http/modules/ngx_http_range_filter_module.c
@@ -270,20 +270,8 @@
             while (*p == ' ') { p++; }
 
             if (*p == ',' || *p == '\0') {
-                range = ngx_array_push(&ctx->ranges);
-                if (range == NULL) {
-                    return NGX_ERROR;
-                }
-
-                range->start = start;
-                range->end = r->headers_out.content_length_n;
-                size += range->end - start;
-
-                if (*p++ != ',') {
-                    break;
-                }
-
-                continue;
+                end = r->headers_out.content_length_n;
+                goto found;
             }
 
         } else {
@@ -314,25 +302,28 @@
             return NGX_HTTP_RANGE_NOT_SATISFIABLE;
         }
 
+        if (end >= r->headers_out.content_length_n) {
+            /*
+             * Download Accelerator sends the last byte position
+             * that equals to the file length
+             */
+            end = r->headers_out.content_length_n;
+
+        } else {
+            end++;
+        }
+
+    found:
+
         range = ngx_array_push(&ctx->ranges);
         if (range == NULL) {
             return NGX_ERROR;
         }
 
         range->start = start;
+        range->end = end;
 
-        if (end >= r->headers_out.content_length_n) {
-            /*
-             * Download Accelerator sends the last byte position
-             * that equals to the file length
-             */
-            range->end = r->headers_out.content_length_n;
-
-        } else {
-            range->end = end + 1;
-        }
-
-        size += range->end - start;
+        size += end - start;
 
         if (*p++ != ',') {
             break;
