diff --git a/library/src/android/support/multidex/MultiDexExtractor.java b/library/src/android/support/multidex/MultiDexExtractor.java
index b5973c5..27da6b3 100644
--- a/library/src/android/support/multidex/MultiDexExtractor.java
+++ b/library/src/android/support/multidex/MultiDexExtractor.java
@@ -253,10 +253,12 @@
      */
     private static void prepareDexDir(File dexDir, final String extractedFilePrefix)
             throws IOException {
-        dexDir.mkdirs();
-        if (!dexDir.isDirectory()) {
-            throw new IOException("Failed to create dex directory " + dexDir.getPath());
-        }
+        /* mkdirs() has some bugs, especially before jb-mr1 and we have only a maximum of one parent
+         * to create, lets stick to mkdir().
+         */
+        File cache = dexDir.getParentFile();
+        mkdirChecked(cache);
+        mkdirChecked(dexDir);
 
         // Clean possible old files
         FileFilter filter = new FileFilter() {
@@ -282,6 +284,24 @@
         }
     }
 
+    private static void mkdirChecked(File dir) throws IOException {
+        dir.mkdir();
+        if (!dir.isDirectory()) {
+            File parent = dir.getParentFile();
+            if (parent == null) {
+                Log.e(TAG, "Failed to create dir " + dir.getPath() + ". Parent file is null.");
+            } else {
+                Log.e(TAG, "Failed to create dir " + dir.getPath() +
+                        ". parent file is a dir " + parent.isDirectory() +
+                        ", a file " + parent.isFile() +
+                        ", exists " + parent.exists() +
+                        ", readable " + parent.canRead() +
+                        ", writable " + parent.canWrite());
+            }
+            throw new IOException("Failed to create cache directory " + dir.getPath());
+        }
+    }
+
     private static void extract(ZipFile apk, ZipEntry dexFile, File extractTo,
             String extractedFilePrefix) throws IOException, FileNotFoundException {
 
