diff --git a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
index 5956fce..a5588f8 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
@@ -1148,7 +1148,7 @@
 
       // TODO(stalcup): is in wrong place, move to optimization stage
       ConfigProps configProps = new ConfigProps(module);
-      EnumNameObfuscator.exec(jprogram, logger,configProps);
+      EnumNameObfuscator.exec(jprogram, logger, configProps, options);
 
       // (4) Normalize the unresolved Java AST
       // Replace defender method references
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/EnumNameObfuscator.java b/dev/core/src/com/google/gwt/dev/jjs/impl/EnumNameObfuscator.java
index 3089112..f3307d5 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/EnumNameObfuscator.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/EnumNameObfuscator.java
@@ -16,6 +16,7 @@
 package com.google.gwt.dev.jjs.impl;
 
 import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.dev.PrecompileTaskOptions;
 import com.google.gwt.dev.cfg.ConfigProps;
 import com.google.gwt.dev.jjs.ast.Context;
 import com.google.gwt.dev.jjs.ast.JClassType;
@@ -32,6 +33,7 @@
 import com.google.gwt.dev.jjs.ast.JVisitor;
 import com.google.gwt.thirdparty.guava.common.collect.Lists;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -203,20 +205,18 @@
     }
   }
 
-  private static boolean typeInBlacklist(List<String> blacklistedEnums, JClassType cType) {
+  private static boolean typeInBlacklist(Collection<String> blacklistedEnums, JClassType cType) {
     return blacklistedEnums.contains(cType.getName().replace('$', '.'));
   }
 
-  public static void exec(JProgram jprogram, TreeLogger logger, ConfigProps configProps) {
-    String enumObfucationProperty = configProps.getString(
-        EnumNameObfuscator.ENUM_NAME_OBFUSCATION_PROPERTY, "false");
-    // TODO(rluble): Replace configuration property by the command line option.
-    boolean closureMode = enumObfucationProperty.equals("closure");
-    if (enumObfucationProperty.equals("false")) {
+  public static void exec(JProgram jprogram, TreeLogger logger, ConfigProps configProps,
+      PrecompileTaskOptions options) {
+    if (!configProps.getBoolean(ENUM_NAME_OBFUSCATION_PROPERTY, false)) {
       return;
     }
-    List<String> blacklistedEnums = configProps.getCommaSeparatedStrings(
-        EnumNameObfuscator.ENUM_NAME_OBFUSCATION_BLACKLIST_PROPERTY);
+    boolean closureMode = options.isClosureCompilerEnabled();
+    List<String> blacklistedEnums =
+        configProps.getCommaSeparatedStrings(ENUM_NAME_OBFUSCATION_BLACKLIST_PROPERTY);
     new EnumNameCallChecker(jprogram, logger, blacklistedEnums).accept(jprogram);
     new EnumNameReplacer(jprogram, logger, blacklistedEnums, closureMode).exec();
   }
diff --git a/user/src/com/google/gwt/core/CompilerParameters.gwt.xml b/user/src/com/google/gwt/core/CompilerParameters.gwt.xml
index 21378c2..df4aca4 100644
--- a/user/src/com/google/gwt/core/CompilerParameters.gwt.xml
+++ b/user/src/com/google/gwt/core/CompilerParameters.gwt.xml
@@ -43,10 +43,7 @@
   <!--
     Whether or not the compiler should alter Enum.name() to return
     ordinal() as a way of obfuscating Enum field identifiers. 
-    A value of 'true' returns the ordinal. A value of 'closure'
-    passes the enum's name through Util.makeEnumName() deferring 
-    the obfuscation until a later Closure Compiler pass can replace
-    it.
+    A value of 'true' returns the ordinal.
   -->
    <define-configuration-property name="compiler.enum.obfuscate.names"
       is-multi-valued='false' />
