diff --git a/src/core/nginx.c b/src/core/nginx.c
index a19695c..8dc6102 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -36,6 +36,13 @@
       offsetof(ngx_core_conf_t, master),
       NULL },
 
+    { ngx_string("worker_processes"),
+      NGX_MAIN_CONF|NGX_CONF_TAKE1,
+      ngx_conf_set_core_num_slot,
+      0,
+      offsetof(ngx_core_conf_t, worker_processes),
+      NULL },
+
     { ngx_string("pid"),
       NGX_MAIN_CONF|NGX_CONF_TAKE1,
       ngx_conf_set_core_str_slot,
@@ -43,13 +50,6 @@
       offsetof(ngx_core_conf_t, pid),
       NULL },
 
-    { ngx_string("worker_reopen"),
-      NGX_MAIN_CONF|NGX_CONF_TAKE1,
-      ngx_conf_set_core_flag_slot,
-      0,
-      offsetof(ngx_core_conf_t, worker_reopen),
-      NULL },
-
       ngx_null_command
 };
 
@@ -174,6 +174,10 @@
         }
     }
 
+    if (ccf->worker_processes == NGX_CONF_UNSET) {
+        ccf->worker_processes = 1;
+    }
+
     if (ccf->pid.len == 0) {
         ccf->pid.len = sizeof(NGINX_PID) - 1;
         ccf->pid.data = NGINX_PID;
@@ -361,7 +365,7 @@
      */
     ccf->daemon = NGX_CONF_UNSET;
     ccf->master = NGX_CONF_UNSET;
-    ccf->worker_reopen = NGX_CONF_UNSET;
+    ccf->worker_processes = NGX_CONF_UNSET;
     ccf->user = (ngx_uid_t) NGX_CONF_UNSET;
     ccf->group = (ngx_gid_t) NGX_CONF_UNSET;
 
diff --git a/src/core/ngx_atomic.h b/src/core/ngx_atomic.h
index 31bf94c..b95e4cc 100644
--- a/src/core/ngx_atomic.h
+++ b/src/core/ngx_atomic.h
@@ -11,7 +11,7 @@
 typedef volatile uint32_t  ngx_atomic_t;
 
 #if (NGX_SMP)
-#define NGX_SMP_LOCK  "lock"
+#define NGX_SMP_LOCK  "lock;"
 #else
 #define NGX_SMP_LOCK
 #endif
@@ -21,14 +21,12 @@
 {
     uint32_t  old;
 
-    old = 1;
-
     __asm__ volatile (
 
         NGX_SMP_LOCK
-    "   xaddl  %0, %1;   "
+    "   xaddl  %0, %2;   "
 
-    : "+q" (old) : "m" (*value));
+    : "=q" (old) : "0" (1), "m" (*value));
 
     return old;
 }
@@ -38,14 +36,12 @@
 {
     uint32_t  old;
 
-    old = (uint32_t) -1;
-
     __asm__ volatile (
 
         NGX_SMP_LOCK
     "   xaddl  %0, %1;   "
 
-    : "+q" (old) : "m" (*value));
+    : "=q" (old) : "0" (-1), "m" (*value));
 
     return old;
 }
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index 6391867..8f409ea 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -571,6 +571,13 @@
 }
 
 
+char *ngx_conf_set_core_num_slot(ngx_conf_t *cf, ngx_command_t *cmd,
+                                 void *conf)
+{
+    return ngx_conf_set_num_slot(cf, cmd, *(void **)conf);
+}
+
+
 char *ngx_conf_set_core_str_slot(ngx_conf_t *cf, ngx_command_t *cmd,
                                  void *conf)
 {
diff --git a/src/core/ngx_conf_file.h b/src/core/ngx_conf_file.h
index ee90855..ed73803 100644
--- a/src/core/ngx_conf_file.h
+++ b/src/core/ngx_conf_file.h
@@ -256,6 +256,8 @@
 
 char *ngx_conf_set_core_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd,
                                   void *conf);
+char *ngx_conf_set_core_num_slot(ngx_conf_t *cf, ngx_command_t *cmd,
+                                 void *conf);
 char *ngx_conf_set_core_str_slot(ngx_conf_t *cf, ngx_command_t *cmd,
                                  void *conf);
 
diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h
index 2ea229e..df1f390 100644
--- a/src/core/ngx_cycle.h
+++ b/src/core/ngx_cycle.h
@@ -28,9 +28,12 @@
 typedef struct {
      ngx_flag_t  daemon;
      ngx_flag_t  master;
-     ngx_flag_t  worker_reopen;
+
+     ngx_int_t   worker_processes;
+
      ngx_uid_t   user;
      ngx_gid_t   group;
+
      ngx_str_t   pid;
      ngx_str_t   newpid;
 } ngx_core_conf_t;
