diff --git a/src/com/facebook/buck/android/AndroidBinaryBuildRuleFactory.java b/src/com/facebook/buck/android/AndroidBinaryBuildRuleFactory.java
index 4fcfb52..3a20be3 100644
--- a/src/com/facebook/buck/android/AndroidBinaryBuildRuleFactory.java
+++ b/src/com/facebook/buck/android/AndroidBinaryBuildRuleFactory.java
@@ -18,10 +18,10 @@
 
 import com.facebook.buck.dalvik.ZipSplitter;
 import com.facebook.buck.model.BuildTarget;
-import com.facebook.buck.rules.AbstractBuildRuleFactory;
-import com.facebook.buck.rules.BuildRuleFactoryParams;
 import com.facebook.buck.parser.NoSuchBuildTargetException;
 import com.facebook.buck.rules.AbstractBuildRuleBuilderParams;
+import com.facebook.buck.rules.AbstractBuildRuleFactory;
+import com.facebook.buck.rules.BuildRuleFactoryParams;
 import com.facebook.buck.rules.SourcePath;
 import com.google.common.base.Optional;
 
@@ -75,6 +75,9 @@
         ? ZipSplitter.DexSplitStrategy.MINIMIZE_PRIMARY_DEX_SIZE
         : ZipSplitter.DexSplitStrategy.MAXIMIZE_PRIMARY_DEX_SIZE;
 
+    // disable_pre_dex
+    builder.setDisablePreDex(params.getBooleanAttribute("disable_pre_dex"));
+
     // dex_compression
     DexStore dexStore =
         "xz".equals(params.getRequiredStringAttribute("dex_compression")) ?
diff --git a/src/com/facebook/buck/android/AndroidBinaryRule.java b/src/com/facebook/buck/android/AndroidBinaryRule.java
index d75ac36..cbc2f67 100644
--- a/src/com/facebook/buck/android/AndroidBinaryRule.java
+++ b/src/com/facebook/buck/android/AndroidBinaryRule.java
@@ -1189,6 +1189,7 @@
     private BuildTarget keystoreTarget;
     private PackageType packageType = DEFAULT_PACKAGE_TYPE;
     private Set<BuildTarget> buildRulesToExcludeFromDex = Sets.newHashSet();
+    private boolean disablePreDex = false;
     private DexSplitMode dexSplitMode = new DexSplitMode(
         /* shouldSplitDex */ false,
         ZipSplitter.DexSplitStrategy.MAXIMIZE_PRIMARY_DEX_SIZE,
@@ -1227,7 +1228,8 @@
       BuildRuleParams originalParams = createBuildRuleParams(ruleResolver);
       ImmutableSortedSet<BuildRule> originalDeps = originalParams.getDeps();
       ImmutableSet<DexProducedFromJavaLibraryThatContainsClassFiles> preDexDeps;
-      if (PackageType.DEBUG.equals(packageType)
+      if (!disablePreDex
+          && PackageType.DEBUG.equals(packageType)
           && !dexSplitMode.isShouldSplitDex() // TODO(mbolin): Support predex for split dex.
           && !preprocessJavaClassesBash.isPresent() // TODO(mbolin): Support predex post-preprocess.
           ) {
@@ -1397,6 +1399,11 @@
       return this;
     }
 
+    public Builder setDisablePreDex(boolean disablePreDex) {
+      this.disablePreDex = disablePreDex;
+      return this;
+    }
+
     public Builder setDexSplitMode(DexSplitMode dexSplitMode) {
       this.dexSplitMode = dexSplitMode;
       return this;
diff --git a/src/com/facebook/buck/parser/buck.py b/src/com/facebook/buck/parser/buck.py
index 4217007..44e9f3c 100644
--- a/src/com/facebook/buck/parser/buck.py
+++ b/src/com/facebook/buck/parser/buck.py
@@ -411,6 +411,7 @@
       use_split_dex=False,
       use_linear_alloc_split_dex=False,
       minimize_primary_dex_size=False,
+      disable_pre_dex=False,
       dex_compression='jar',
       use_android_proguard_config_with_optimizations=False,
       proguard_config=None,
@@ -438,6 +439,7 @@
     'use_split_dex': use_split_dex,
     'use_linear_alloc_split_dex': use_linear_alloc_split_dex,
     'minimize_primary_dex_size': minimize_primary_dex_size,
+    'disable_pre_dex' : disable_pre_dex,
     'dex_compression': dex_compression,
     'use_android_proguard_config_with_optimizations':
         use_android_proguard_config_with_optimizations,
