diff --git a/src/org/thoughtcrime/securesms/database/MmsSmsColumns.java b/src/org/thoughtcrime/securesms/database/MmsSmsColumns.java
index df57508904..5a09813f7f 100644
--- a/src/org/thoughtcrime/securesms/database/MmsSmsColumns.java
+++ b/src/org/thoughtcrime/securesms/database/MmsSmsColumns.java
@@ -196,8 +196,10 @@ public interface MmsSmsColumns {
       switch ((int)theirType) {
         case 1: return BASE_INBOX_TYPE;
         case 2: return BASE_SENT_TYPE;
+        case 3: return BASE_DRAFT_TYPE;
         case 4: return BASE_OUTBOX_TYPE;
         case 5: return BASE_SENT_FAILED_TYPE;
+        case 6: return BASE_OUTBOX_TYPE;
       }
 
       return BASE_INBOX_TYPE;
diff --git a/src/org/thoughtcrime/securesms/database/PlaintextBackupImporter.java b/src/org/thoughtcrime/securesms/database/PlaintextBackupImporter.java
index 75346e846d..9f8972d88f 100644
--- a/src/org/thoughtcrime/securesms/database/PlaintextBackupImporter.java
+++ b/src/org/thoughtcrime/securesms/database/PlaintextBackupImporter.java
@@ -63,6 +63,9 @@ public class PlaintextBackupImporter {
           if (item.getAddress() == null || item.getAddress().equals("null"))
             continue;
 
+          if (!isAppropriateTypeForImport(item.getType()))
+            continue;
+
           addStringToStatement(statement, 1, item.getAddress());
           addNullToStatement(statement, 2);
           addLongToStatement(statement, 3, item.getDate());
@@ -121,4 +124,13 @@ public class PlaintextBackupImporter {
     statement.bindLong(index, value);
   }
 
+  private static boolean isAppropriateTypeForImport(long theirType) {
+    long ourType = SmsDatabase.Types.translateFromSystemBaseType(theirType);
+
+    return ourType == MmsSmsColumns.Types.BASE_INBOX_TYPE ||
+           ourType == MmsSmsColumns.Types.BASE_SENT_TYPE ||
+           ourType == MmsSmsColumns.Types.BASE_SENT_FAILED_TYPE;
+  }
+
+
 }
diff --git a/src/org/thoughtcrime/securesms/database/SmsMigrator.java b/src/org/thoughtcrime/securesms/database/SmsMigrator.java
index 0e375337ea..5415762591 100644
--- a/src/org/thoughtcrime/securesms/database/SmsMigrator.java
+++ b/src/org/thoughtcrime/securesms/database/SmsMigrator.java
@@ -83,6 +83,15 @@ public class SmsMigrator {
     }
   }
 
+  private static boolean isAppropriateTypeForMigration(Cursor cursor, int columnIndex) {
+    long systemType = cursor.getLong(columnIndex);
+    long ourType    = SmsDatabase.Types.translateFromSystemBaseType(systemType);
+
+    return ourType == MmsSmsColumns.Types.BASE_INBOX_TYPE ||
+           ourType == MmsSmsColumns.Types.BASE_SENT_TYPE ||
+           ourType == MmsSmsColumns.Types.BASE_SENT_FAILED_TYPE;
+  }
+
   private static void getContentValuesForRow(Context context, MasterSecret masterSecret,
                                              Cursor cursor, long threadId,
                                              SQLiteStatement statement)
@@ -171,8 +180,12 @@ public class SmsMigrator {
       SQLiteStatement statement  = ourSmsDatabase.createInsertStatement(transaction);
 
       while (cursor != null && cursor.moveToNext()) {
-        getContentValuesForRow(context, masterSecret, cursor, ourThreadId, statement);
-        statement.execute();
+        int typeColumn = cursor.getColumnIndex(SmsDatabase.TYPE);
+
+        if (cursor.isNull(typeColumn) || isAppropriateTypeForMigration(cursor, typeColumn)) {
+          getContentValuesForRow(context, masterSecret, cursor, ourThreadId, statement);
+          statement.execute();
+        }
 
         listener.progressUpdate(new ProgressDescription(progress, cursor.getCount(), cursor.getPosition()));
       }