diff --git a/src/shared/drivers/usart/USART.cpp b/src/shared/drivers/usart/USART.cpp
index f5c787d6fb5ca54ba6868ef5f95b997b1e74660c..5efb72ea91d3c933a092f2da2b888b5b79edfc09 100644
--- a/src/shared/drivers/usart/USART.cpp
+++ b/src/shared/drivers/usart/USART.cpp
@@ -30,6 +30,7 @@
 
 #include "arch/common/drivers/serial.h"
 #include "filesystem/file_access.h"
+#include "kernel/scheduler/scheduler.h"
 #include "miosix.h"
 
 ///< Pointer to serial port classes to let interrupts access the classes
@@ -368,6 +369,11 @@ void USART::IRQhandleInterrupt()
         if (rxWaiting)
         {
             rxWaiting->IRQwakeup();
+            if (rxWaiting->IRQgetPriority() >
+                miosix::Thread::IRQgetCurrentThread()->IRQgetPriority())
+            {
+                miosix::Scheduler::IRQfindNextThread();
+            }
             rxWaiting = nullptr;
         }
     }