diff --git a/windows/mpconfigport.h b/windows/mpconfigport.h
index 3fbe82c993c81ca6af1f42eeaab6f17234331136..58129760069aef963db88aa5adc2dc268c1f92ec 100644
--- a/windows/mpconfigport.h
+++ b/windows/mpconfigport.h
@@ -139,8 +139,14 @@ typedef long mp_off_t;
 typedef void *machine_ptr_t; // must be of pointer size
 typedef const void *machine_const_ptr_t; // must be of pointer size
 
+#if MICROPY_PY_OS_DUPTERM
+#define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len)
+void mp_hal_dupterm_tx_strn(const char *str, size_t len);
+#else
 #include <unistd.h>
 #define MP_PLAT_PRINT_STRN(str, len) do { int ret = write(1, str, len); (void)ret; } while (0)
+#define mp_hal_dupterm_tx_strn(s, l)
+#endif
 
 extern const struct _mp_obj_fun_builtin_t mp_builtin_input_obj;
 extern const struct _mp_obj_fun_builtin_t mp_builtin_open_obj;