diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h
index 4439692f0..d66f7f2c4 100644
--- a/tasmota/language/bg_BG.h
+++ b/tasmota/language/bg_BG.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Зареждането започна"
#define D_UPGRADE_STARTED "Обновяването започна"
#define D_UPLOAD_DONE "Зареждането завърши"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Не е избран файл"
#define D_UPLOAD_ERR_2 "Недостатъчно свободно място"
#define D_UPLOAD_ERR_3 "Magic байтът не е 0xE9"
diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h
index 3bc5f33d4..a4967cf76 100644
--- a/tasmota/language/cs_CZ.h
+++ b/tasmota/language/cs_CZ.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Nahrávání zahájeno"
#define D_UPGRADE_STARTED "Zahájení aktualizace"
#define D_UPLOAD_DONE "Nahrávání ukončeno"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Soubor nebyl vybrán"
#define D_UPLOAD_ERR_2 "Málo místa"
#define D_UPLOAD_ERR_3 "Magický byte má hodnotu jinou než 0xE9"
diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h
index f4e624ed4..34b9ea95e 100644
--- a/tasmota/language/de_DE.h
+++ b/tasmota/language/de_DE.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Upload gestartet"
#define D_UPGRADE_STARTED "Update gestartet"
#define D_UPLOAD_DONE "Upload abgeschlossen"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Keine Datei ausgewählt"
#define D_UPLOAD_ERR_2 "Ungenügend Speicherplatz"
#define D_UPLOAD_ERR_3 "Magic Byte ist nicht 0xE9"
diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h
index f557444de..9f3bff980 100644
--- a/tasmota/language/el_GR.h
+++ b/tasmota/language/el_GR.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Η μεταφόρτωση ξεκίνησε"
#define D_UPGRADE_STARTED "Η αναβάθμιση ξεκίνησε"
#define D_UPLOAD_DONE "Η μεταφόρτωση ολοκληρώθηκε"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Δεν έχει επιλεγεί αρχείο"
#define D_UPLOAD_ERR_2 "Δεν υπάρχει επαρκής χώρος"
#define D_UPLOAD_ERR_3 "Magic byte is not 0xE9"
diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h
index 6fe834fc2..b30843b92 100644
--- a/tasmota/language/en_GB.h
+++ b/tasmota/language/en_GB.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Upload started"
#define D_UPGRADE_STARTED "Upgrade started"
#define D_UPLOAD_DONE "Upload done"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "No file selected"
#define D_UPLOAD_ERR_2 "Not enough space"
#define D_UPLOAD_ERR_3 "Magic byte is not 0xE9"
diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h
index 8fd50b7a2..4eff2f17e 100644
--- a/tasmota/language/es_ES.h
+++ b/tasmota/language/es_ES.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Cargando archivo"
#define D_UPGRADE_STARTED "Actualización iniciada"
#define D_UPLOAD_DONE "Carga finalizada"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Ningún archivo seleccionado"
#define D_UPLOAD_ERR_2 "Espacio insuficiente"
#define D_UPLOAD_ERR_3 "Magic byte no corresponde a 0xE9"
diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h
index 7d0868aa8..6bf85bf4d 100644
--- a/tasmota/language/fr_FR.h
+++ b/tasmota/language/fr_FR.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Téléchargement lancé"
#define D_UPGRADE_STARTED "Mise à jour lancée"
#define D_UPLOAD_DONE "Téléchargement terminé"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Aucun fichier sélectionné"
#define D_UPLOAD_ERR_2 "Espace insuffisant"
#define D_UPLOAD_ERR_3 "L'octet magique n'est pas 0xE9"
diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h
index a34c84329..efe3bac98 100644
--- a/tasmota/language/he_HE.h
+++ b/tasmota/language/he_HE.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "העלאה מתחילה"
#define D_UPGRADE_STARTED "שדרוג מתחיל"
#define D_UPLOAD_DONE "העלאה הסתיימה"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "לא נבחר קובץ"
#define D_UPLOAD_ERR_2 "אין מספיק מקום"
#define D_UPLOAD_ERR_3 "Magic byte is not 0xE9"
diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h
index 41a6b472e..97a7511e8 100644
--- a/tasmota/language/hu_HU.h
+++ b/tasmota/language/hu_HU.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Feltöltés elindítva"
#define D_UPGRADE_STARTED "Frissítés elindítva"
#define D_UPLOAD_DONE "Feltöltés kész"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Nincs fájl kijelölve"
#define D_UPLOAD_ERR_2 "Nincs elég memória"
#define D_UPLOAD_ERR_3 "A \"magic byte\" nem 0xE9"
diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h
index f03d8c06f..5441fed1d 100644
--- a/tasmota/language/it_IT.h
+++ b/tasmota/language/it_IT.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Caricamento..."
#define D_UPGRADE_STARTED "Aggiornamento..."
#define D_UPLOAD_DONE "Caricamento completato"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Nessun file selezionato"
#define D_UPLOAD_ERR_2 "Spazio insufficiente"
#define D_UPLOAD_ERR_3 "Magic byte non corrispondente a 0xE9"
diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h
index 84bd1b003..d46c29a83 100644
--- a/tasmota/language/ko_KO.h
+++ b/tasmota/language/ko_KO.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "업로드 시작됨"
#define D_UPGRADE_STARTED "업그레이드 시작됨"
#define D_UPLOAD_DONE "업그레이드 완료"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "파일이 선택되지 않았습니다"
#define D_UPLOAD_ERR_2 "용량이 충분하지 않습니다"
#define D_UPLOAD_ERR_3 "Magic 바이트가 0xE9가 아닙니다"
diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h
index 0a96682d3..167d4a536 100644
--- a/tasmota/language/nl_NL.h
+++ b/tasmota/language/nl_NL.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Verzending gestart"
#define D_UPGRADE_STARTED "Opwaarderen gestart"
#define D_UPLOAD_DONE "Opwaarderen klaar"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Geen bestand gekozen"
#define D_UPLOAD_ERR_2 "Onvoldoende geheugen ruimte"
#define D_UPLOAD_ERR_3 "Magische byte is niet 0xE9"
diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h
index 5582fd7ea..7924989a6 100644
--- a/tasmota/language/pl_PL.h
+++ b/tasmota/language/pl_PL.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Wgrywanie rozpoczęte"
#define D_UPGRADE_STARTED "Aktualizacja rozpoczęta"
#define D_UPLOAD_DONE "Wgrywanie zakończone"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Nie wybrano pliku"
#define D_UPLOAD_ERR_2 "Niewystarczająca ilość miejsca"
#define D_UPLOAD_ERR_3 "Magiczny bajt jest inny niz 0xE9"
diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h
index bdbb5d31a..584c3e11f 100644
--- a/tasmota/language/pt_BR.h
+++ b/tasmota/language/pt_BR.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Início do envio"
#define D_UPGRADE_STARTED "Atualização iniciada"
#define D_UPLOAD_DONE "Atualização finalizada"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Nenhum arquivo selecionado"
#define D_UPLOAD_ERR_2 "Não existe memória disponível"
#define D_UPLOAD_ERR_3 "Byte mágico não é 0xE9"
diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h
index b68d06861..10e444afe 100644
--- a/tasmota/language/pt_PT.h
+++ b/tasmota/language/pt_PT.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Envio Iniciado"
#define D_UPGRADE_STARTED "Atualização Iniciada"
#define D_UPLOAD_DONE "Atualização Finalizada"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Nenhum ficheiro selecionado"
#define D_UPLOAD_ERR_2 "Não existe espaço disponível"
#define D_UPLOAD_ERR_3 "O Byte mágico não é 0xE9"
diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h
index 5ff7697df..f6d29fb70 100644
--- a/tasmota/language/ro_RO.h
+++ b/tasmota/language/ro_RO.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Încărcare începută"
#define D_UPGRADE_STARTED "Actualizare începută"
#define D_UPLOAD_DONE "Încărcare terminată"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Nici un fișier selectat"
#define D_UPLOAD_ERR_2 "Spațiu insuficient"
#define D_UPLOAD_ERR_3 "Magic byte nu este 0xE9"
diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h
index 35d838d45..7655e30ce 100644
--- a/tasmota/language/ru_RU.h
+++ b/tasmota/language/ru_RU.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Загрузка началась"
#define D_UPGRADE_STARTED "Обновление началось"
#define D_UPLOAD_DONE "Загрузка завершена"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Файл не выбран"
#define D_UPLOAD_ERR_2 "Недостаточно места"
#define D_UPLOAD_ERR_3 "Magic байт не 0xE9"
diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h
index 812ea402a..a29b1ec5a 100644
--- a/tasmota/language/sk_SK.h
+++ b/tasmota/language/sk_SK.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Nahrávanie spustené"
#define D_UPGRADE_STARTED "Aktualizácia spustená"
#define D_UPLOAD_DONE "Nahrávanie ukončené"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Súbor nebol vybraný"
#define D_UPLOAD_ERR_2 "Málo miesta"
#define D_UPLOAD_ERR_3 "Magický byte má hodnotu inú než 0xE9"
diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h
index 7102eaa20..e473eba5a 100644
--- a/tasmota/language/sv_SE.h
+++ b/tasmota/language/sv_SE.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Uppladdning startad"
#define D_UPGRADE_STARTED "Uppgradeing startad"
#define D_UPLOAD_DONE "Uppladdning klar"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Ingen fil vald"
#define D_UPLOAD_ERR_2 "Inte tillräckligt med ledigt utrymme"
#define D_UPLOAD_ERR_3 "Magisk byte är inte 0xE9"
diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h
index f729ff276..c436ccc34 100644
--- a/tasmota/language/tr_TR.h
+++ b/tasmota/language/tr_TR.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Yükleme başlatıldı"
#define D_UPGRADE_STARTED "YÜkestlme başlatıldı"
#define D_UPLOAD_DONE "Yükleme Tamamlandı"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Dosya seçilmedi"
#define D_UPLOAD_ERR_2 "Boş yer yok"
#define D_UPLOAD_ERR_3 "Magic byte is not 0xE9"
diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h
index df346b31a..350702b21 100644
--- a/tasmota/language/uk_UA.h
+++ b/tasmota/language/uk_UA.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "Завантаження почалось"
#define D_UPGRADE_STARTED "Оновлення почалось"
#define D_UPLOAD_DONE "Завантаження завершено"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "Файл не вибраний"
#define D_UPLOAD_ERR_2 "Недостатньо місця"
#define D_UPLOAD_ERR_3 "Магічний байт не 0xE9"
diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h
index 375f25188..238f65f9a 100644
--- a/tasmota/language/zh_CN.h
+++ b/tasmota/language/zh_CN.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "开始上传"
#define D_UPGRADE_STARTED "开始升级"
#define D_UPLOAD_DONE "上传完成"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "没有选择任何文件"
#define D_UPLOAD_ERR_2 "没有足够空间"
#define D_UPLOAD_ERR_3 "固件头不是 0xE9"
diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h
index f8e3f94d3..4a3a03b8c 100644
--- a/tasmota/language/zh_TW.h
+++ b/tasmota/language/zh_TW.h
@@ -349,6 +349,7 @@
#define D_UPLOAD_STARTED "已開始上傳"
#define D_UPGRADE_STARTED "已開始升級"
#define D_UPLOAD_DONE "已上傳完成"
+#define D_TRANSFER_STARTED "Transfer started"
#define D_UPLOAD_ERR_1 "沒選擇任何檔案"
#define D_UPLOAD_ERR_2 "可用空間不足"
#define D_UPLOAD_ERR_3 "魔術數字(Magic byte)不是 0xE9"
diff --git a/tasmota/xdrv_01_webserver.ino b/tasmota/xdrv_01_webserver.ino
index 65ea3497d..04688f844 100644
--- a/tasmota/xdrv_01_webserver.ino
+++ b/tasmota/xdrv_01_webserver.ino
@@ -2625,19 +2625,23 @@ void HandleUploadDone(void)
stop_flash_rotate = Settings.flag.stop_flash_rotate; // SetOption12 - Switch between dynamic or fixed slot flash save location
} else {
WSContentSend_P(PSTR("%06x'>" D_SUCCESSFUL "
"), WebColor(COL_TEXT_SUCCESS));
- WSContentSend_P(HTTP_MSG_RSTRT);
- ShowWebSource(SRC_WEBGUI);
restart_flag = 2; // Always restart to re-enable disabled features during update
#if defined(USE_ZIGBEE) && defined(USE_ZIGBEE_EZSP)
if (ZigbeeUploadOtaReady()) {
+ WSContentSend_P(PSTR("