diff --git a/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c b/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c
index 0c83cd8dde7f7d1015f5ee04f95910055f6a52b2..8ef07f1c3327e14ffec33e3d968f4c4b8d414e18 100644
--- a/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c
+++ b/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c
@@ -147,8 +147,10 @@ void EVENT_USB_Device_UnhandledControlPacket(void)
  */
 ISR(USART1_RX_vect, ISR_BLOCK)
 {
+	uint8_t ReceivedByte = UDR1;
+
 	if (USB_DeviceState == DEVICE_STATE_Configured)
-	  Buffer_StoreElement(&Tx_Buffer, UDR1);
+	  Buffer_StoreElement(&Tx_Buffer, ReceivedByte);
 }
 
 /** Event handler for the CDC Class driver Line Encoding Changed event.
diff --git a/Demos/Device/LowLevel/USBtoSerial/USBtoSerial.c b/Demos/Device/LowLevel/USBtoSerial/USBtoSerial.c
index 141a452763e2dad7bbb363084282518fb1d0b864..d5e871c2dd3c67c7076985e8f9827acf8f36242d 100644
--- a/Demos/Device/LowLevel/USBtoSerial/USBtoSerial.c
+++ b/Demos/Device/LowLevel/USBtoSerial/USBtoSerial.c
@@ -296,9 +296,11 @@ void CDC_Task(void)
  */
 ISR(USART1_RX_vect, ISR_BLOCK)
 {
+	uint8_t ReceivedByte = UDR1;
+
 	/* Only store received characters if the USB interface is connected */
 	if ((USB_DeviceState != DEVICE_STATE_Configured) && LineEncoding.BaudRateBPS)
-	  Buffer_StoreElement(&Tx_Buffer, UDR1);
+	  Buffer_StoreElement(&Tx_Buffer, ReceivedByte);
 }
 
 /** Reconfigures the USART to match the current serial port settings issued by the host as closely as possible. */