diff --git a/Volume.cpp b/Volume.cpp
index 80a8bf1..eae70d1 100644
--- a/Volume.cpp
+++ b/Volume.cpp
@@ -112,6 +112,25 @@
     free(mMountpoint);
 }
 
+void Volume::protectFromAutorunStupidity() {
+    char filename[255];
+
+    snprintf(filename, sizeof(filename), "%s/autorun.inf", SEC_STGDIR);
+    if (!access(filename, F_OK)) {
+        LOGW("Volume contains an autorun.inf! - removing");
+        /*
+         * Ensure the filename is all lower-case so
+         * the process killer can find the inode.
+         * Probably being paranoid here but meh.
+         */
+        rename(filename, filename);
+        Process::killProcessesWithOpenFiles(filename, 2);
+        if (unlink(filename)) {
+            LOGE("Failed to remove %s (%s)", filename, strerror(errno));
+        }
+    }
+}
+
 void Volume::setDebug(bool enable) {
     mDebug = enable;
 }
@@ -306,6 +325,8 @@
 
         LOGI("Device %s, target %s mounted @ /mnt/secure/staging", devicePath, getMountpoint());
 
+        protectFromAutorunStupidity();
+
         if (createBindMounts()) {
             LOGE("Failed to create bindmounts (%s)", strerror(errno));
             umount("/mnt/secure/staging");
@@ -487,6 +508,8 @@
         return -1;
     }
 
+    protectFromAutorunStupidity();
+
     /*
      * Unmount the tmpfs which was obscuring the asec image directory
      * from non root users
