diff --git a/esp8266/main.c b/esp8266/main.c
index 21bb6e0e0fcea181d87569f6e213d64b9e0cd0a0..71dfeb2ac65f54cd68cbcc1cb625f1fd7b672fdc 100644
--- a/esp8266/main.c
+++ b/esp8266/main.c
@@ -60,6 +60,7 @@ STATIC void mp_reset(void) {
     MP_STATE_PORT(dupterm_arr_obj) = MP_OBJ_NULL;
     pin_init0();
     readline_init0();
+    dupterm_task_init();
 #if MICROPY_MODULE_FROZEN
     pyexec_frozen_module("_boot.py");
     pyexec_file("boot.py");
@@ -85,7 +86,6 @@ void init_done(void) {
     #if MICROPY_REPL_EVENT_DRIVEN
     pyexec_event_repl_init();
     #endif
-    dupterm_task_init();
 
     #if !MICROPY_REPL_EVENT_DRIVEN
 soft_reset: