diff --git a/dev/core/src/com/google/gwt/dev/ExternalPermutationWorkerFactory.java b/dev/core/src/com/google/gwt/dev/ExternalPermutationWorkerFactory.java
index d221129..b6d4573 100644
--- a/dev/core/src/com/google/gwt/dev/ExternalPermutationWorkerFactory.java
+++ b/dev/core/src/com/google/gwt/dev/ExternalPermutationWorkerFactory.java
@@ -347,11 +347,12 @@
     }
   }
 
-  private ServerSocket sock;
+  private ServerSocket sock = null;
 
   @Override
   public Collection<PermutationWorker> getWorkers(TreeLogger logger,
       UnifiedAst unifiedAst, int numWorkers) throws UnableToCompleteException {
+    ensureSocket(logger);
     File astFile;
     try {
       astFile = File.createTempFile("externalPermutationWorkerFactory", ".ser");
@@ -379,7 +380,14 @@
   }
 
   @Override
-  public void init(TreeLogger logger) throws UnableToCompleteException {
+  public boolean isLocal() {
+    return true;
+  }
+
+  private synchronized void ensureSocket(TreeLogger logger) throws UnableToCompleteException {
+    if (sock != null) {
+      return;
+    }
     try {
       sock = new ServerSocket();
       /*
@@ -397,9 +405,4 @@
       throw new UnableToCompleteException();
     }
   }
-
-  @Override
-  public boolean isLocal() {
-    return true;
-  }
 }
diff --git a/dev/core/src/com/google/gwt/dev/PermutationWorkerFactory.java b/dev/core/src/com/google/gwt/dev/PermutationWorkerFactory.java
index 5246fab..37475ec 100644
--- a/dev/core/src/com/google/gwt/dev/PermutationWorkerFactory.java
+++ b/dev/core/src/com/google/gwt/dev/PermutationWorkerFactory.java
@@ -297,7 +297,6 @@
         Class<? extends PermutationWorkerFactory> clazz = Class.forName(
             className).asSubclass(PermutationWorkerFactory.class);
         PermutationWorkerFactory factory = clazz.newInstance();
-        factory.init(logger);
         mutableFactories.add(factory);
         if (logger.isLoggable(TreeLogger.SPAM)) {
           logger.log(TreeLogger.SPAM, "Added PermutationWorkerFactory "
@@ -377,11 +376,6 @@
       UnifiedAst unifiedAst, int numWorkers) throws UnableToCompleteException;
 
   /**
-   * Initialize the PermutationWorkerFactory.
-   */
-  public abstract void init(TreeLogger logger) throws UnableToCompleteException;
-
-  /**
    * Indicates if the PermutationWorkers created by the factory consume
    * computational or memory resources on the local system, as opposed to the
    * per-permutation work being performed on a remote system.
diff --git a/dev/core/src/com/google/gwt/dev/ThreadedPermutationWorkerFactory.java b/dev/core/src/com/google/gwt/dev/ThreadedPermutationWorkerFactory.java
index 673be66..be4f28f 100644
--- a/dev/core/src/com/google/gwt/dev/ThreadedPermutationWorkerFactory.java
+++ b/dev/core/src/com/google/gwt/dev/ThreadedPermutationWorkerFactory.java
@@ -100,11 +100,6 @@
   }
 
   @Override
-  public void init(TreeLogger logger) throws UnableToCompleteException {
-    logger.log(TreeLogger.SPAM, "Initializing ThreadedPermutationWorkerFactory");
-  }
-
-  @Override
   public boolean isLocal() {
     return true;
   }
