diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 62e3413..2cd6b77 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -403,7 +403,7 @@
    * @param command R8 command.
    * @return the compilation result.
    */
-  public static AndroidApp run(R8Command command) throws IOException, CompilationException {
+  public static R8Output run(R8Command command) throws IOException, CompilationException {
     InternalOptions options = command.getInternalOptions();
     ExecutorService executorService = ThreadUtils.getExecutorService(options);
     try {
@@ -413,6 +413,19 @@
     }
   }
 
+  /**
+   * TODO(sgjesse): Get rid of this.
+   */
+  public static AndroidApp runInternal(R8Command command) throws IOException, CompilationException {
+    InternalOptions options = command.getInternalOptions();
+    ExecutorService executorService = ThreadUtils.getExecutorService(options);
+    try {
+      return runInternal(command, executorService);
+    } finally {
+      executorService.shutdown();
+    }
+  }
+
   private static void writeProguardMapToPath(Path path, AndroidApp outputApp) throws IOException {
     try (Closer closer = Closer.create()) {
       OutputStream mapOut = FileUtils.openPathWithDefault(
@@ -484,7 +497,20 @@
    * @param executor executor service from which to get threads for multi-threaded processing.
    * @return the compilation result.
    */
-  public static AndroidApp run(R8Command command, ExecutorService executor)
+  public static R8Output run(R8Command command, ExecutorService executor)
+      throws IOException, CompilationException {
+    InternalOptions options = command.getInternalOptions();
+    AndroidApp outputApp =
+        runForTesting(command.getInputApp(), options, executor).androidApp;
+    R8Output output = new R8Output(outputApp, command.getOutputMode());
+    writeOutputs(command, options, outputApp);
+    return output;
+  }
+
+  /**
+   * TODO(sgjesse): Get rid of this.
+   */
+  public static AndroidApp runInternal(R8Command command, ExecutorService executor)
       throws IOException, CompilationException {
     InternalOptions options = command.getInternalOptions();
     AndroidApp outputApp =
diff --git a/src/main/java/com/android/tools/r8/R8Output.java b/src/main/java/com/android/tools/r8/R8Output.java
new file mode 100644
index 0000000..5134a39
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/R8Output.java
@@ -0,0 +1,22 @@
+// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8;
+
+import com.android.tools.r8.utils.AndroidApp;
+import com.android.tools.r8.utils.OutputMode;
+import java.io.IOException;
+import java.nio.file.Path;
+
+/** Represents the output of a R8 compilation. */
+public class R8Output extends BaseOutput {
+
+  R8Output(AndroidApp app, OutputMode outputMode) {
+    super(app, outputMode);
+  }
+
+  @Override
+  public void write(Path output) throws IOException {
+    getAndroidApp().write(output, getOutputMode());
+  }
+}
diff --git a/src/main/java/com/android/tools/r8/compatproguard/CompatProguard.java b/src/main/java/com/android/tools/r8/compatproguard/CompatProguard.java
index 75c28d1..34798e4 100644
--- a/src/main/java/com/android/tools/r8/compatproguard/CompatProguard.java
+++ b/src/main/java/com/android/tools/r8/compatproguard/CompatProguard.java
@@ -7,20 +7,25 @@
 import com.android.tools.r8.CompilationException;
 import com.android.tools.r8.R8;
 import com.android.tools.r8.R8Command;
+import com.android.tools.r8.R8Output;
 import com.android.tools.r8.Version;
+import com.android.tools.r8.errors.CompilationError;
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
 import java.nio.file.Paths;
 import java.util.List;
 
 /**
- * Proguard + Dx compatibility interface for r8.
+ * Proguard + dx compatibility interface for r8.
  *
- * This should become a mostly drop-in replacement for uses of Proguard followed by Dx.
+ * This should become a mostly drop-in replacement for uses of Proguard followed by dx for
+ * use with the Android Platform build.
  *
  * It accepts all Proguard flags supported by r8, except -outjars.
  *
- * The flag -outjars does not make sense as r8 (like Proguard + Dx) produces Dex output.
+ * It accepts a few dx flags which are known to be used in the Android Platform build.
+ *
+ * The flag -outjars does not make sense as r8 (like Proguard + dx) produces Dex output.
  * For output use --output as for R8 proper.
  */
 public class CompatProguard {
@@ -28,13 +33,15 @@
     public final String output;
     public final int minApi;
     public final boolean forceProguardCompatibility;
+    public final boolean multiDex;
     public final List<String> proguardConfig;
 
     CompatProguardOptions(List<String> proguardConfig, String output, int minApi,
-        boolean forceProguardCompatibility) {
+        boolean multiDex, boolean forceProguardCompatibility) {
       this.output = output;
       this.minApi = minApi;
       this.forceProguardCompatibility = forceProguardCompatibility;
+      this.multiDex = multiDex;
       this.proguardConfig = proguardConfig;
     }
 
@@ -42,6 +49,7 @@
       String output = null;
       int minApi = 1;
       boolean forceProguardCompatibility = false;
+      boolean multiDex = false;
       ImmutableList.Builder<String> builder = ImmutableList.builder();
       if (args.length > 0) {
         StringBuilder currentLine = new StringBuilder(args[0]);
@@ -54,6 +62,8 @@
               forceProguardCompatibility = true;
             } else if (arg.equals("--output")) {
               output = args[++i];
+            } else if (arg.equals("--multi-dex")) {
+              multiDex = true;
             } else if (arg.equals("-outjars")) {
               throw new CompilationException(
                   "Proguard argument -outjar is not supported. Use R8 compatible --output flag");
@@ -67,7 +77,8 @@
         }
         builder.add(currentLine.toString());
       }
-      return new CompatProguardOptions(builder.build(), output, minApi, forceProguardCompatibility);
+      return new CompatProguardOptions(builder.build(), output, minApi, multiDex,
+          forceProguardCompatibility);
     }
   }
 
@@ -84,7 +95,15 @@
     builder.setOutputPath(Paths.get(options.output))
         .addProguardConfiguration(options.proguardConfig)
         .setMinApiLevel(options.minApi);
-    R8.run(builder.build());
+    R8Output result = R8.run(builder.build());
+
+    if (!options.multiDex) {
+      if (result.getDexResources().size() > 1) {
+        throw new CompilationError(
+            "Compilation result could not fit into a single dex file. "
+                + "Reduce the input-program size or run with --multi-dex enabled");
+      }
+    }
   }
 
   public static void main(String[] args) throws IOException {
diff --git a/src/main/java/com/android/tools/r8/compatproguard/CompatProguardCommandBuilder.java b/src/main/java/com/android/tools/r8/compatproguard/CompatProguardCommandBuilder.java
index 145d0e6..2c7c43b 100644
--- a/src/main/java/com/android/tools/r8/compatproguard/CompatProguardCommandBuilder.java
+++ b/src/main/java/com/android/tools/r8/compatproguard/CompatProguardCommandBuilder.java
@@ -9,5 +9,6 @@
 public class CompatProguardCommandBuilder extends R8Command.Builder {
   CompatProguardCommandBuilder(boolean forceProguardCompatibility) {
     super(true, forceProguardCompatibility);
+    setEnableDesugaring(false);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 0a26131..bb35911 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -672,7 +672,7 @@
 
   public static AndroidApp runR8(Collection<String> fileNames, String out)
       throws IOException, CompilationException {
-    return R8.run(
+    return R8.runInternal(
         R8Command.builder()
             .addProgramFiles(ListUtils.map(fileNames, Paths::get))
             .setOutputPath(Paths.get(out))
diff --git a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
index c15b716..f253a12 100644
--- a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
+++ b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
@@ -60,7 +60,7 @@
   void compileWithR8(Path inputPath, Path outputPath, Path keepRulesPath)
       throws IOException, CompilationException {
     AndroidApp androidApp =
-        R8.run(
+        R8.runInternal(
             R8Command.builder()
                 .addProgramFiles(inputPath)
                 .addLibraryFiles(Paths.get(ToolHelper.getDefaultAndroidJar()))
