diff --git a/src/http/modules/ngx_http_limit_conn_module.c b/src/http/modules/ngx_http_limit_conn_module.c
index e82ca49..7f0eea7 100644
--- a/src/http/modules/ngx_http_limit_conn_module.c
+++ b/src/http/modules/ngx_http_limit_conn_module.c
@@ -40,6 +40,7 @@
 typedef struct {
     ngx_array_t         limits;
     ngx_uint_t          log_level;
+    ngx_uint_t          status_code;
 } ngx_http_limit_conn_conf_t;
 
 
@@ -74,6 +75,11 @@
 };
 
 
+static ngx_conf_num_bounds_t  ngx_http_limit_conn_status_bounds = {
+    ngx_conf_check_num_bounds, 400, 599
+};
+
+
 static ngx_command_t  ngx_http_limit_conn_commands[] = {
 
     { ngx_string("limit_conn_zone"),
@@ -104,6 +110,13 @@
       offsetof(ngx_http_limit_conn_conf_t, log_level),
       &ngx_http_limit_conn_log_levels },
 
+    { ngx_string("limit_conn_status"),
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
+      ngx_conf_set_num_slot,
+      NGX_HTTP_LOC_CONF_OFFSET,
+      offsetof(ngx_http_limit_conn_conf_t, status_code),
+      &ngx_http_limit_conn_status_bounds },
+
       ngx_null_command
 };
 
@@ -206,7 +219,7 @@
             if (node == NULL) {
                 ngx_shmtx_unlock(&shpool->mutex);
                 ngx_http_limit_conn_cleanup_all(r->pool);
-                return NGX_HTTP_SERVICE_UNAVAILABLE;
+                return lccf->status_code;
             }
 
             lc = (ngx_http_limit_conn_node_t *) &node->color;
@@ -231,7 +244,7 @@
                               &limits[i].shm_zone->shm.name);
 
                 ngx_http_limit_conn_cleanup_all(r->pool);
-                return NGX_HTTP_SERVICE_UNAVAILABLE;
+                return lccf->status_code;
             }
 
             lc->conn++;
@@ -467,6 +480,7 @@
      */
 
     conf->log_level = NGX_CONF_UNSET_UINT;
+    conf->status_code = NGX_CONF_UNSET_UINT;
 
     return conf;
 }
@@ -483,6 +497,8 @@
     }
 
     ngx_conf_merge_uint_value(conf->log_level, prev->log_level, NGX_LOG_ERR);
+    ngx_conf_merge_uint_value(conf->status_code, prev->status_code,
+                              NGX_HTTP_SERVICE_UNAVAILABLE);
 
     return NGX_CONF_OK;
 }
diff --git a/src/http/modules/ngx_http_limit_req_module.c b/src/http/modules/ngx_http_limit_req_module.c
index 31a8b98..934292e 100644
--- a/src/http/modules/ngx_http_limit_req_module.c
+++ b/src/http/modules/ngx_http_limit_req_module.c
@@ -53,6 +53,7 @@
     ngx_array_t                  limits;
     ngx_uint_t                   limit_log_level;
     ngx_uint_t                   delay_log_level;
+    ngx_uint_t                   status_code;
 } ngx_http_limit_req_conf_t;
 
 
@@ -84,6 +85,11 @@
 };
 
 
+static ngx_conf_num_bounds_t  ngx_http_limit_req_status_bounds = {
+    ngx_conf_check_num_bounds, 400, 599
+};
+
+
 static ngx_command_t  ngx_http_limit_req_commands[] = {
 
     { ngx_string("limit_req_zone"),
@@ -107,6 +113,13 @@
       offsetof(ngx_http_limit_req_conf_t, limit_log_level),
       &ngx_http_limit_req_log_levels },
 
+    { ngx_string("limit_req_status"),
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
+      ngx_conf_set_num_slot,
+      NGX_HTTP_LOC_CONF_OFFSET,
+      offsetof(ngx_http_limit_req_conf_t, status_code),
+      &ngx_http_limit_req_status_bounds },
+
       ngx_null_command
 };
 
@@ -245,7 +258,7 @@
             ctx->node = NULL;
         }
 
-        return NGX_HTTP_SERVICE_UNAVAILABLE;
+        return lrcf->status_code;
     }
 
     /* rc == NGX_AGAIN || rc == NGX_OK */
@@ -682,6 +695,7 @@
      */
 
     conf->limit_log_level = NGX_CONF_UNSET_UINT;
+    conf->status_code = NGX_CONF_UNSET_UINT;
 
     return conf;
 }
@@ -703,6 +717,9 @@
     conf->delay_log_level = (conf->limit_log_level == NGX_LOG_INFO) ?
                                 NGX_LOG_INFO : conf->limit_log_level + 1;
 
+    ngx_conf_merge_uint_value(conf->status_code, prev->status_code,
+                              NGX_HTTP_SERVICE_UNAVAILABLE);
+
     return NGX_CONF_OK;
 }
 
