diff --git a/pkg/semtech-loramac/contrib/semtech_loramac_timer.c b/pkg/semtech-loramac/contrib/semtech_loramac_timer.c
index 790aca24b47123252b429cbe75697f9de4c5dded..59686b5645efd31a41606feedb527040c3bd02de 100644
--- a/pkg/semtech-loramac/contrib/semtech_loramac_timer.c
+++ b/pkg/semtech-loramac/contrib/semtech_loramac_timer.c
@@ -62,9 +62,10 @@ void TimerSetValue(TimerEvent_t *obj, uint32_t value)
 
     /* According to the lorawan specifications, the data sent from the gateway
        could arrive with a short shift in time of +/- 20ms. Here the timeout is
-       triggered 22ms in advance to make sure the radio switches to RX mode on
-       time and doesn't miss any downlink messages. */
-    obj->timeout = (value - 22) * US_PER_MS;
+       triggered 50ms in advance to make sure the radio switches to RX mode on
+       time and doesn't miss any downlink messages, taking in consideration
+       possible xtimer inaccuracies. */
+    obj->timeout = (value - 50) * US_PER_MS;
 }
 
 TimerTime_t TimerGetCurrentTime(void)