}
 
                memcpy(active_rxon, staging_rxon, sizeof(*active_rxon));
-
+               /*
+                * We do not commit tx power settings while channel changing,
+                * do it now if tx power changed.
+                */
+               iwl_legacy_set_tx_power(priv, priv->tx_power_next, false);
                return 0;
        }
 
 
 
                memcpy(active_rxon, &ctx->staging, sizeof(*active_rxon));
                iwl_legacy_print_rx_config_cmd(priv, ctx);
-               goto set_tx_power;
+               /*
+                * We do not commit tx power settings while channel changing,
+                * do it now if tx power changed.
+                */
+               iwl_legacy_set_tx_power(priv, priv->tx_power_next, false);
+               return 0;
        }
 
        /* If we are currently associated and the new config requires
 
        iwl4965_init_sensitivity(priv);
 
-set_tx_power:
        /* If we issue a new RXON command which required a tune then we must
         * send a new TXPOWER command or we won't be able to Tx any frames */
        ret = iwl_legacy_set_tx_power(priv, priv->tx_power_next, true);