whats wrong with my enemy respawn script????

when the enemy respawns the scripts attached to it get unchecked and dont work heres my script on the enemy
#pragma strict

var health = 100;
var respawn : Transform;
var enemy : Transform;
function TakeDamage (damage : float)
{
    if (health <= 0)
    {
        Destroy(gameObject);
        return;
    }
    health -= damage;
    if (health <= 0)
    {
        Destroy(gameObject);
        health += 100;
        var respawnedEnemy : Transform = Instantiate( respawn, enemy.transform.position, enemy.transform.rotation );
	//respawnedEnemy.velocity = transform.TransformDirection(Random.Range(-2, 2) - 3.0f, Random.Range(-1, 2) + 3.0f, -Random.Range(-2, 2) + 1.0f);
	Physics.IgnoreCollision( respawnedEnemy. collider, transform.root.collider );
       
    }
}

and my script on the bullet
#pragma strict

var damage : int = 25;

function Start () {
	Destroy (gameObject, 4);	
}

function OnCollisionStay (theObject : Collision) 
{
    if(theObject.gameObject.tag=="Enemy")
    {
        theObject.gameObject.GetComponent(EnemyHealth).TakeDamage(damage);
    }
}

Instead of using the prefab as the “Enemy : Transform” i would suggest that you create a new enemy Away from your scene your terrain, and uses that because, Prefabs doesnt check the variables when its created… its a wierd system but thats how i did it ^^

did this make sense??