disable_irq(device->irq_num[DIO0]);
                device->tx_active = true;
 
+               /* clear fifo, set fifo threshold, set payload length */
+               retval = rf69_set_mode(spi, standby); /* this clears the fifo */
+               if (retval < 0)
+                       return retval;
+
                if (device->rx_active && !rx_interrupted) {
                        /*
                         * rx is currently waiting for a telegram;
                         * we need to set the radio module to standby
                         */
-                       retval = rf69_set_mode(device->spi, standby);
-                       if (retval < 0)
-                               return retval;
                        rx_interrupted = true;
                }
 
-               /* clear fifo, set fifo threshold, set payload length */
-               retval = rf69_set_mode(spi, standby); /* this clears the fifo */
-               if (retval < 0)
-                       return retval;
                retval = rf69_set_fifo_threshold(spi, FIFO_THRESHOLD);
                if (retval < 0)
                        return retval;