diff --git a/software/common/retarget/uart_stdout.c b/software/common/retarget/uart_stdout.c
index 17257a043e03530f3cbebdd3daf6bf23eeaa80c4..c7145f8e929887069ba30589a15c6db235febc74 100644
--- a/software/common/retarget/uart_stdout.c
+++ b/software/common/retarget/uart_stdout.c
@@ -94,13 +94,9 @@ unsigned char UartPutc(unsigned char my_ch)
 // Get a character
 unsigned char UartGetc(void)
 {
-  if ((CMSDK_USRT2->CTRL & 1)==0) {
-    while ((CMSDK_UART2->STATE & 2)==0);
-    return (CMSDK_UART2->DATA);
-  } else {
-    while ((CMSDK_USRT2->STATE & 2)==0);
-    return (CMSDK_USRT2->DATA);
-  }
+  while (((CMSDK_UART2->STATE & 2)==0) & ((CMSDK_USRT2->STATE & 2)==0));
+  if ((CMSDK_UART2->STATE & 2)==2) return (CMSDK_UART2->DATA);
+  if ((CMSDK_USRT2->STATE & 2)==2) return (CMSDK_USRT2->DATA);
 }
 
 void UartEndSimulation(void)