diff --git a/mbtk/libmbtk_lib/src/mbtk_mtd.c b/mbtk/libmbtk_lib/src/mbtk_mtd.c
index 6129bc1..b17b27f 100755
--- a/mbtk/libmbtk_lib/src/mbtk_mtd.c
+++ b/mbtk/libmbtk_lib/src/mbtk_mtd.c
@@ -43,7 +43,9 @@
     char size_str[16];
     char name[32];
     char erase_size_str[16];
+    char name_temp[32];
     memset(buff, 0x0, 64);
+    memset(name_temp, 0x0, 32);
     while(fgets(buff, 64, fp)) {
         if(str_startwith(buff, "mtd")) {
             memset(size_str, 0x0, 16);
@@ -63,8 +65,29 @@
 
                 partition_list[index].partition_size = (uint32)strtoul(size_str, NULL, 16);
                 partition_list[index].erase_size = (uint32)strtoul(erase_size_str, NULL, 16);
-                if(index > 0) {
-                    partition_list[index].partition_start = partition_list[index - 1].partition_start + partition_list[index - 1].partition_size;
+                // XXX-sdtim or XXX-mount
+                ssize_t index_sdtim = str_indexof(partition_list[index].name, "-sdtim");
+                ssize_t index_mount = str_indexof(partition_list[index].name, "-mount");
+                if(index_sdtim > 0 || index_mount > 0) {
+                    if(index_sdtim > 0) {
+                        memcpy(name_temp, partition_list[index].name, index_sdtim);
+                    } else {
+                        memcpy(name_temp, partition_list[index].name, index_mount);
+                    }
+                    if(index > 0) {
+                        partition_list[index].partition_start = partition_list[index - 1].partition_start + partition_list[index - 1].partition_size;
+                    }
+                } else {
+                    if(strlen(name_temp) > 0) {
+                        memset(name_temp, 0x0, 32);
+                        if(index > 0) {
+                            partition_list[index].partition_start = partition_list[index - 2].partition_start;
+                        }
+                    } else {
+                        if(index > 0) {
+                            partition_list[index].partition_start = partition_list[index - 1].partition_start + partition_list[index - 1].partition_size;
+                        }
+                    }
                 }
                 partition_list[index].used = TRUE;
             } else {
