diff --git a/prebuilt/common/etc/init.d/05mountsd b/prebuilt/common/etc/init.d/05mountsd
index c519a7e..b34b171 100644
--- a/prebuilt/common/etc/init.d/05mountsd
+++ b/prebuilt/common/etc/init.d/05mountsd
@@ -1,6 +1,6 @@
 #!/system/bin/sh
 #
-# mount ext4 partition from sd card
+# mount ext partition from sd card
 
 BB="logwrapper busybox";
 
@@ -15,53 +15,41 @@
     MMC_TYPE=`cat /sys/block/mmcblk$MMC_NUM/device/type`
     if [ "$MMC_TYPE" = "SD" ];
     then
-        SDCARD=/dev/block/mmcblk$MMC_NUM
+        # 2nd partition of sdcard should be the sd-ext if exist
+        SD_EXT_PART=/dev/block/mmcblk${MMC_NUM}p2
         break
     fi
 done
 
-if [ -b "$SDCARD" ];
+if [ -b "$SD_EXT_PART" ];
 then
-    # find sd-ext partition by label
-    PARTITIONS=`cat /proc/partitions|grep mmcblk$MMC_NUM|grep -v "mmcblk$MMC_NUM$"|awk '{print $4}'`
-    for PARTITION in $PARTITIONS
-    do
-        LABEL=`e2label /dev/block/$PARTITION`
-        if [ "$LABEL" = "sd-ext" ];
-        then
-            SD_EXT_PART=/dev/block/$PARTITION
-            break
-        fi
-    done
+    log -p i -t mountsd "Checking filesystems..";
 
-    if [ -b "$SD_EXT_PART" ];
+    # fsck the sdcard filesystem first
+    if [ -x `which e2fsck` ];
     then
-        log -p i -t mountsd "Checking filesystems..";
-   
-        # fsck the sdcard filesystem first
-        if [ -x `which e2fsck` ];
+        e2fsck -y $SD_EXT_PART
+        e2fsk_exitcode=$?
+    else
+        echo "executable e2fsck not found, assuming no filesystem errors"
+        e2fsk_exitcode=0
+    fi
+
+    # set property with exit code in case an error occurs
+    setprop cm.e2fsck.errors $e2fsk_exitcode;
+    if [ "$e2fsk_exitcode" -lt 2 ];
+    then
+        # mount and set perms
+        $BB mount -o noatime,nodiratime,barrier=1 -t ext3 $SD_EXT_PART $SD_EXT_DIRECTORY;
+        if [ "$?" = 0 ];
         then
-            e2fsck -y $SD_EXT_PART;e2fsk_exitcode=$?
+            $BB chown 1000:1000 $SD_EXT_DIRECTORY;
+            $BB chmod 771 $SD_EXT_DIRECTORY;
+            log -p i -t mountsd "$SD_EXT_DIRECTORY successfully mounted";
         else
-            echo "executable e2fsck not found, assuming no filesystem errors"
-            e2fsk_exitcode=0
+            log -p e -t mountsd "Unable to mount filesystem for $SD_EXT_DIRECTORY!";
         fi
-        # set property with exit code in case an error occurs
-        setprop cm.e2fsck.errors $e2fsk_exitcode;
-        if [ "$e2fsk_exitcode" -lt 2 ];
-        then
-            # mount and set perms
-            $BB mount -o noatime,barrier=1,data=ordered,noauto_da_alloc -t ext4 $SD_EXT_PART $SD_EXT_DIRECTORY;
-            if [ "$?" = 0 ];
-            then
-                $BB chown 1000:1000 $SD_EXT_DIRECTORY;
-                $BB chmod 771 $SD_EXT_DIRECTORY;
-                log -p i -t mountsd "$SD_EXT_DIRECTORY successfully mounted";
-            else
-                log -p e -t mountsd "Unable to mount filesystem for $SD_EXT_DIRECTORY!";
-            fi
-        else
-            log -p e -t mountsd "Unable to repair filesystem, disabling apps2sd";
-        fi
+    else
+        log -p e -t mountsd "Unable to repair filesystem, disabling apps2sd";
     fi
 fi
