Question about Damage Delay

I have been trying to get this damage script to delay how quickly it will damage whatever it is coming in contact with. It works, but it delays the first time it's supposed to hit for seemingly no reason. Any way to fix this?

var damage = 10;

var enable = true;
var damageDelay = 3;

function OnControllerColliderHit (hit : ControllerColliderHit) {
    if(enable == true)
    {
        hit.gameObject.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
        enable = false;

        yield WaitForSeconds (damageDelay);
        enable = true;
    }
 }

var damage = 10;

var enable = true;
var damageDelay = 3;

function OnControllerColliderHit (hit : ControllerColliderHit) {
    if(enable == true)
    {
        hit.gameObject.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
        enable = false;

        yield WaitForSeconds (damageDelay);
        enable = true;
    }
 }