entry->crc = BATADV_BLA_CRC_INIT;
        entry->bat_priv = bat_priv;
        atomic_set(&entry->request_sent, 0);
+       atomic_set(&entry->wait_periods, 0);
        memcpy(entry->orig, orig, ETH_ALEN);
 
        /* one for the hash, one for returning */
 
                /* this will be decreased in the worker thread */
                atomic_inc(&entry->request_sent);
+               atomic_set(&entry->wait_periods, BATADV_BLA_WAIT_PERIODS);
                atomic_inc(&bat_priv->bla.num_requests);
        }
 
                         * problems when we are not yet known as backbone gw
                         * in the backbone.
                         *
-                        * We can reset this now and allow traffic again.
+                        * We can reset this now after we waited some periods
+                        * to give bridge forward delays and bla group forming
+                        * some grace time.
                         */
 
                        if (atomic_read(&backbone_gw->request_sent) == 0)
                                continue;
 
+                       if (!atomic_dec_and_test(&backbone_gw->wait_periods))
+                               continue;
+
                        atomic_dec(&backbone_gw->bat_priv->bla.num_requests);
                        atomic_set(&backbone_gw->request_sent, 0);
                }
 
 #define BATADV_BLA_PERIOD_LENGTH       10000   /* 10 seconds */
 #define BATADV_BLA_BACKBONE_TIMEOUT    (BATADV_BLA_PERIOD_LENGTH * 3)
 #define BATADV_BLA_CLAIM_TIMEOUT       (BATADV_BLA_PERIOD_LENGTH * 10)
+#define BATADV_BLA_WAIT_PERIODS                3
 
 #define BATADV_DUPLIST_SIZE            16
 #define BATADV_DUPLIST_TIMEOUT         500     /* 500 ms */