--sysconfdir=DIR
diff --git a/src/core/nginx.c b/src/core/nginx.c
index b758775..27cb80f 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -656,7 +656,7 @@
         cycle->conf_file.data = (u_char *) NGX_CONF_PATH;
     }
 
-    if (ngx_conf_full_name(cycle, &cycle->conf_file) == NGX_ERROR) {
+    if (ngx_conf_full_name(cycle, &cycle->conf_file, 1) == NGX_ERROR) {
         return NGX_ERROR;
     }
 
@@ -826,7 +826,7 @@
         ccf->pid.data = (u_char *) NGX_PID_PATH;
     }
 
-    if (ngx_conf_full_name(cycle, &ccf->pid) == NGX_ERROR) {
+    if (ngx_conf_full_name(cycle, &ccf->pid, 0) == NGX_ERROR) {
         return NGX_CONF_ERROR;
     }
 
@@ -846,7 +846,7 @@
         ccf->lock_file.data = (u_char *) NGX_LOCK_PATH;
     }
 
-    if (ngx_conf_full_name(cycle, &ccf->lock_file) == NGX_ERROR) {
+    if (ngx_conf_full_name(cycle, &ccf->lock_file, 0) == NGX_ERROR) {
         return NGX_CONF_ERROR;
     }
 
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index a68192f..514d55b 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -641,7 +641,7 @@
 
     ngx_log_debug1(NGX_LOG_DEBUG_CORE, cf->log, 0, "include %s", file.data);
 
-    if (ngx_conf_full_name(cf->cycle, &file) == NGX_ERROR) {
+    if (ngx_conf_full_name(cf->cycle, &file, 1) == NGX_ERROR) {
         return NGX_CONF_ERROR;
     }
 
@@ -681,9 +681,10 @@
 
 
 ngx_int_t
-ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name)
+ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name, ngx_uint_t conf_prefix)
 {
-    u_char     *p;
+    size_t      len;
+    u_char     *p, *prefix;
     ngx_str_t   old;
 
     if (name->data[0] == '/') {
@@ -704,14 +705,22 @@
 
     old = *name;
 
-    name->len = cycle->root.len + old.len;
+    if (conf_prefix) {
+        len = sizeof(NGX_CONF_PREFIX) - 1;
+        prefix = (u_char *) NGX_CONF_PREFIX;
 
+    } else {
+        len = cycle->root.len;
+        prefix = cycle->root.data;
+    }
+
+    name->len = len + old.len;
     name->data = ngx_palloc(cycle->pool, name->len + 1);
     if (name->data == NULL) {
         return  NGX_ERROR;
     }
 
-    p = ngx_cpymem(name->data, cycle->root.data, cycle->root.len),
+    p = ngx_cpymem(name->data, prefix, len);
     ngx_cpystrn(p, old.data, old.len + 1);
 
     return NGX_OK;
@@ -734,7 +743,7 @@
     if (name) {
         full = *name;
 
-        if (ngx_conf_full_name(cycle, &full) == NGX_ERROR) {
+        if (ngx_conf_full_name(cycle, &full, 0) == NGX_ERROR) {
             return NULL;
         }
 
diff --git a/src/core/ngx_conf_file.h b/src/core/ngx_conf_file.h
index 7d51129..2e91d0b 100644
--- a/src/core/ngx_conf_file.h
+++ b/src/core/ngx_conf_file.h
@@ -320,7 +320,8 @@
 char *ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename);
 
 
-ngx_int_t ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name);
+ngx_int_t ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name,
+    ngx_uint_t conf_prefix);
 ngx_open_file_t *ngx_conf_open_file(ngx_cycle_t *cycle, ngx_str_t *name);
 void ngx_cdecl ngx_conf_log_error(ngx_uint_t level, ngx_conf_t *cf,
     ngx_err_t err, char *fmt, ...);
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index fcb8ff0..f855786 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -260,7 +260,7 @@
         path->name.len--;
     }
 
-    if (ngx_conf_full_name(cf->cycle, &path->name) == NGX_ERROR) {
+    if (ngx_conf_full_name(cf->cycle, &path->name, 0) == NGX_ERROR) {
         return NULL;
     }
 
diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h
index 0f819a1..063b0fb 100644
--- a/src/core/ngx_file.h
+++ b/src/core/ngx_file.h
@@ -109,7 +109,7 @@
             curr->name.len = sizeof(path) - 1;                                \
             curr->name.data = (u_char *) path;                                \
                                                                               \
-            if (ngx_conf_full_name(cf->cycle, &curr->name) == NGX_ERROR) {    \
+            if (ngx_conf_full_name(cf->cycle, &curr->name, 0) == NGX_ERROR) { \
                 return NGX_CONF_ERROR;                                        \
             }                                                                 \
                                                                               \
diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c
index 349ae76..1059acf 100644
--- a/src/core/ngx_log.c
+++ b/src/core/ngx_log.c
@@ -333,7 +333,7 @@
     } else {
         cf->cycle->new_log->file->name = value[1];
 
-        if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name)
+        if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name, 0)
             == NGX_ERROR)
         {
             return NGX_CONF_ERROR;
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
index d311968..63e5ba9 100644
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -198,7 +198,7 @@
 ngx_ssl_certificate(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *cert,
     ngx_str_t *key)
 {
-    if (ngx_conf_full_name(cf->cycle, cert) == NGX_ERROR) {
+    if (ngx_conf_full_name(cf->cycle, cert, 1) == NGX_ERROR) {
         return NGX_ERROR;
     }
 
@@ -211,7 +211,7 @@
         return NGX_ERROR;
     }
 
-    if (ngx_conf_full_name(cf->cycle, key) == NGX_ERROR) {
+    if (ngx_conf_full_name(cf->cycle, key, 1) == NGX_ERROR) {
         return NGX_ERROR;
     }
 
@@ -242,7 +242,7 @@
         return NGX_OK;
     }
 
-    if (ngx_conf_full_name(cf->cycle, cert) == NGX_ERROR) {
+    if (ngx_conf_full_name(cf->cycle, cert, 1) == NGX_ERROR) {
         return NGX_ERROR;
     }
 
diff --git a/src/http/modules/ngx_http_auth_basic_module.c b/src/http/modules/ngx_http_auth_basic_module.c
index 19bfe99..72b4bbd 100644
--- a/src/http/modules/ngx_http_auth_basic_module.c
+++ b/src/http/modules/ngx_http_auth_basic_module.c
@@ -352,7 +352,7 @@
     }
 
     if (conf->user_file.data) {
-        if (ngx_conf_full_name(cf->cycle, &conf->user_file) != NGX_OK) {
+        if (ngx_conf_full_name(cf->cycle, &conf->user_file, 1) != NGX_OK) {
             return NGX_CONF_ERROR;
         }
 
diff --git a/src/http/modules/ngx_http_geo_module.c b/src/http/modules/ngx_http_geo_module.c
index 62ef72c..9c43bd7 100644
--- a/src/http/modules/ngx_http_geo_module.c
+++ b/src/http/modules/ngx_http_geo_module.c
@@ -198,7 +198,7 @@
     if (ngx_strcmp(value[0].data, "include") == 0) {
         file = value[1];
 
-        if (ngx_conf_full_name(cf->cycle, &file) == NGX_ERROR){
+        if (ngx_conf_full_name(cf->cycle, &file, 1) == NGX_ERROR){
             return NGX_CONF_ERROR;
         }
 
diff --git a/src/http/modules/ngx_http_map_module.c b/src/http/modules/ngx_http_map_module.c
index 4a8acd0..7b3a363 100644
--- a/src/http/modules/ngx_http_map_module.c
+++ b/src/http/modules/ngx_http_map_module.c
@@ -378,7 +378,7 @@
     if (ngx_strcmp(value[0].data, "include") == 0) {
         file = value[1];
 
-        if (ngx_conf_full_name(cf->cycle, &file) == NGX_ERROR){
+        if (ngx_conf_full_name(cf->cycle, &file, 1) == NGX_ERROR){
             return NGX_CONF_ERROR;
         }
 
diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c
index 248f578..836a415 100644
--- a/src/http/modules/perl/ngx_http_perl_module.c
+++ b/src/http/modules/perl/ngx_http_perl_module.c
@@ -454,7 +454,7 @@
 #endif
 
     if (pmcf->modules.data) {
-        if (ngx_conf_full_name(cf->cycle, &pmcf->modules) != NGX_OK) {
+        if (ngx_conf_full_name(cf->cycle, &pmcf->modules, 0) != NGX_OK) {
             return NGX_CONF_ERROR;
         }
     }
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index a903c9a..eb22139 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1223,7 +1223,8 @@
             return NULL;
         }
 
-        if (ngx_conf_full_name((ngx_cycle_t *) ngx_cycle, path) == NGX_ERROR) {
+        if (ngx_conf_full_name((ngx_cycle_t *) ngx_cycle, path, 0)== NGX_ERROR)
+        {
             return NULL;
         }
 
@@ -1947,7 +1948,7 @@
     if (ngx_strcmp(value[0].data, "include") == 0) {
         file = value[1];
 
-        if (ngx_conf_full_name(cf->cycle, &file) == NGX_ERROR){
+        if (ngx_conf_full_name(cf->cycle, &file, 1) == NGX_ERROR){
             return NGX_CONF_ERROR;
         }
 
@@ -2290,7 +2291,7 @@
             conf->root.len = sizeof("html") - 1;
             conf->root.data = (u_char *) "html";
 
-            if (ngx_conf_full_name(cf->cycle, &conf->root) == NGX_ERROR) {
+            if (ngx_conf_full_name(cf->cycle, &conf->root, 0) == NGX_ERROR) {
                 return NGX_CONF_ERROR;
             }
         }
@@ -2739,7 +2740,7 @@
     }
 
     if (lcf->root.data[0] != '$') {
-        if (ngx_conf_full_name(cf->cycle, &lcf->root) == NGX_ERROR) {
+        if (ngx_conf_full_name(cf->cycle, &lcf->root, 0) == NGX_ERROR) {
             return NGX_CONF_ERROR;
         }
     }
diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c
index 9137460..123017d 100644
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -926,7 +926,9 @@
             return NGX_ERROR;
         }
 
-        if (ngx_conf_full_name((ngx_cycle_t *) ngx_cycle, &path) == NGX_ERROR) {
+        if (ngx_conf_full_name((ngx_cycle_t *) ngx_cycle, &path, 0)
+            == NGX_ERROR)
+        {
             return NGX_ERROR;
         }