diff --git a/src/avr/serial.c b/src/avr/serial.c
index 0a7a95088..c1882a5d9 100644
--- a/src/avr/serial.c
+++ b/src/avr/serial.c
@@ -63,6 +63,13 @@ ISR(USART0_UDRE_vect)
         UDR0 = transmit_buf[transmit_pos++];
 }
 
+// Enable tx interrupts
+static void
+enable_tx_irq(void)
+{
+    UCSR0B |= 1<<UDRIE0;
+}
+
 
 /****************************************************************
  * Console access functions
@@ -124,7 +131,7 @@ console_get_output(uint8_t len)
     writeb(&transmit_pos, 0);
     barrier();
     writeb(&transmit_max, tmax);
-    UCSR0B |= 1<<UDRIE0;
+    enable_tx_irq();
     return &transmit_buf[tmax];
 }
 
@@ -133,6 +140,5 @@ void
 console_push_output(uint8_t len)
 {
     writeb(&transmit_max, readb(&transmit_max) + len);
-    // enable TX interrupt
-    UCSR0B |= 1<<UDRIE0;
+    enable_tx_irq();
 }