--- a/src/chrome/app/chrome_dll_main.cc
+++ b/src/chrome/app/chrome_dll_main.cc
@@ -824,12 +824,14 @@ int ChromeMain(int argc, char** argv) {
       if (process_type == switches::kRendererProcess ||
           process_type == switches::kExtensionProcess) {
         rv = RendererMain(main_params);
-#ifndef DISABLE_NACL
+#if !defined(DISABLE_NACL)
       } else if (process_type == switches::kNaClLoaderProcess) {
         rv = NaClMain(main_params);
 #endif
+      } else if (process_type == switches::kWorkerProcess) {
+	rv = WorkerMain(main_params);
       } else {
-        NOTREACHED() << "Unknown process type";
+        NOTREACHED() << "Unknown process type: " << process_type;
       }
     } else {
       rv = 0;
--- a/src/chrome/browser/worker_host/worker_process_host.cc
+++ b/src/chrome/browser/worker_host/worker_process_host.cc
@@ -157,6 +157,8 @@ bool WorkerProcessHost::Init() {
 #endif
 
 #if defined(OS_POSIX)
+  bool use_zygote = true;
+
   if (CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kWaitForDebuggerChildren)) {
     // Look to pass-on the kWaitForDebugger flag.
@@ -164,6 +166,7 @@ bool WorkerProcessHost::Init() {
         switches::kWaitForDebuggerChildren);
     if (value.empty() || value == switches::kWorkerProcess) {
       cmd_line->AppendSwitch(switches::kWaitForDebugger);
+      use_zygote = false;
     }
   }
 
@@ -175,23 +178,17 @@ bool WorkerProcessHost::Init() {
       // launches a new xterm, and runs the worker process in gdb, reading
       // optional commands from gdb_chrome file in the working directory.
       cmd_line->PrependWrapper(L"xterm -e gdb -x gdb_chrome --args");
+      use_zygote = false;
     }
   }
 
-  if (CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kRendererCmdPrefix)) {
-    const std::wstring prefix =
-        CommandLine::ForCurrentProcess()->GetSwitchValue(
-            switches::kRendererCmdPrefix);
-    cmd_line->PrependWrapper(prefix);
-  }
 #endif
 
   Launch(
 #if defined(OS_WIN)
       FilePath(),
 #elif defined(OS_POSIX)
-      false,
+      use_zygote,
       base::environment_vector(),
 #endif
       cmd_line);
