diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index ae4231f..bea7a4c 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -127,6 +127,7 @@
                     && ngx_strcmp(name->data, cmd->name.data) == 0)
                 {
 
+                    found = 1;
 #if 0
 ngx_log_debug(cf->log, "command '%s'" _ cmd->name.data);
 #endif
@@ -204,7 +205,6 @@
 #endif
 
                     if (rv == NGX_CONF_OK) {
-                        found = 1;
                         break;
 
                     } else if (rv == NGX_CONF_ERROR) {
@@ -220,7 +220,7 @@
                                          cf->conf_file->line);
                         } else {
                             ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                                         "%s %s in %s:%d",
+                                         "\"%s\" directive %s in %s:%d",
                                          name->data, rv,
                                          cf->conf_file->file.name.data,
                                          cf->conf_file->line);
@@ -245,6 +245,10 @@
             rc = NGX_ERROR;
             break;
         }
+
+        if (rc == NGX_ERROR) {
+            break;
+        }
     }
 
     if (filename) {
@@ -471,6 +475,30 @@
 }
 
 
+void ngx_conf_log_error(int level, ngx_conf_t *cf, ngx_err_t err,
+                        char *fmt, ...)
+{
+    int      len;
+    char     errstr[MAX_CONF_ERRSTR];
+    va_list  args;
+
+    va_start(args, fmt);
+    len = ngx_vsnprintf(errstr, sizeof(errstr) - 1, fmt, args);
+    va_end(args);
+
+    if (err) {
+        len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1,
+                            " (%d: ", err);
+        len += ngx_strerror_r(err, errstr + len, sizeof(errstr) - len - 1);
+        errstr[len++] = ')';
+        errstr[len++] = '\0';
+    }
+
+    ngx_log_error(level, cf->log, 0, "%s in %s:%d",
+                  errstr, cf->conf_file->file.name.data, cf->conf_file->line);
+}
+
+
 char *ngx_conf_set_core_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd,
                                   void *conf)
 {
