diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index d459612..5194be8 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -1395,34 +1395,8 @@
 	if (FreeStorage != NULL) {
 		// Attempt to mount storage
 		if (!FreeStorage->Mount(false)) {
-			// We couldn't mount storage... check to see if we have dual storage
-			int has_dual_storage;
-			DataManager::GetValue(TW_HAS_DUAL_STORAGE, has_dual_storage);
-			if (has_dual_storage == 1) {
-				// We have dual storage, see if we're using the internal storage that should always be present
-				if (current_storage_path == DataManager::GetSettingsStoragePath()) {
-					if (!FreeStorage->Is_Encrypted) {
-						// Not able to use internal, so error!
-						gui_msg(Msg(msg::kError, "unable_to_mount_internal=Unable to mount internal_storage"));
-					}
-					DataManager::SetValue(TW_STORAGE_FREE_SIZE, 0);
-				} else {
-					// We were using external, flip to internal
-					DataManager::SetValue(TW_USE_EXTERNAL_STORAGE, 0);
-					current_storage_path = DataManager::GetCurrentStoragePath();
-					FreeStorage = Find_Partition_By_Path(current_storage_path);
-					if (FreeStorage != NULL) {
-						DataManager::SetValue(TW_STORAGE_FREE_SIZE, (int)(FreeStorage->Free / 1048576LLU));
-					} else {
-						gui_msg(Msg(msg::kError, "unable_to_locate=Unable to locate {1}")("internal storage partition"));
-						DataManager::SetValue(TW_STORAGE_FREE_SIZE, 0);
-					}
-				}
-			} else {
-				// No dual storage and unable to mount storage, error!
-				gui_msg(Msg(msg::kError, "unable_to_mount_storage=Unable to mount storage"));
-				DataManager::SetValue(TW_STORAGE_FREE_SIZE, 0);
-			}
+			gui_msg(Msg(msg::kError, "unable_to_mount_storage=Unable to mount storage"));
+			DataManager::SetValue(TW_STORAGE_FREE_SIZE, 0);
 		} else {
 			DataManager::SetValue(TW_STORAGE_FREE_SIZE, (int)(FreeStorage->Free / 1048576LLU));
 		}
