diff --git a/firmware/rust1/src/rs485.rs b/firmware/rust1/src/rs485.rs
index 4b0c800baee63a79dd1790b7bed9141ed0063ce4..3aa39a2b7db8931dd490868006c16f92d321aa84 100644
--- a/firmware/rust1/src/rs485.rs
+++ b/firmware/rust1/src/rs485.rs
@@ -266,6 +266,13 @@ impl<H: RS485Handler> RS485<H> {
             pin_pad(&self.rx_pin).modify(|w| w.set_pue(true));
         }
 
+        // This switching of RX function might have caused an error to be received. Let's skip that.
+        if true {
+            let mut rx_buf_one = [0; 1];
+            let rx_future = self.rx.read(&mut rx_buf_one);
+            let _ = select(rx_future, Timer::after(Duration::from_micros(10))).await;
+        }
+
         info!("Program size for auto-baud: {}, for tx: {}, wait_for_not_idle is at: {}",
             prg_autobaud.program.code.len(), prg_tx.program.code.len(),
             prg_autobaud.public_defines.wait_for_not_idle);