diff --git a/cores/esp8266/HardwareSerial.cpp b/cores/esp8266/HardwareSerial.cpp
index 979b0c0da4..d78b239f1e 100644
--- a/cores/esp8266/HardwareSerial.cpp
+++ b/cores/esp8266/HardwareSerial.cpp
@@ -152,6 +152,9 @@ void HardwareSerial::flush()
     }
 
     uart_wait_tx_empty(_uart);
+    //Workaround for a bug in serial not actually being finished yet
+    //Wait for 8 data bits, 1 parity and 2 stop bits, just in case
+    delayMicroseconds(11000000 / uart_get_baudrate(_uart) + 1);
 }
 
 size_t HardwareSerial::write(uint8_t c)