/* Cancel all the running timers/work .. */
        cancel_work_sync(&priv->ps_work);
-       cancel_delayed_work_sync(&priv->ath9k_ani_work);
        cancel_delayed_work_sync(&priv->ath9k_led_blink_work);
        ath9k_led_stop_brightness(priv);
 
        priv->op_flags |= OP_SCANNING;
        spin_unlock_bh(&priv->beacon_lock);
        cancel_work_sync(&priv->ps_work);
-       cancel_delayed_work_sync(&priv->ath9k_ani_work);
+       if (priv->op_flags & OP_ASSOCIATED)
+               cancel_delayed_work_sync(&priv->ath9k_ani_work);
        mutex_unlock(&priv->mutex);
 }
 
        priv->op_flags &= ~OP_SCANNING;
        spin_unlock_bh(&priv->beacon_lock);
        priv->op_flags |= OP_FULL_RESET;
-       if (priv->op_flags & OP_ASSOCIATED)
+       if (priv->op_flags & OP_ASSOCIATED) {
                ath9k_htc_beacon_config(priv, priv->vif);
-       ath_start_ani(priv);
+               ath_start_ani(priv);
+       }
        ath9k_htc_ps_restore(priv);
        mutex_unlock(&priv->mutex);
 }