problems deactivating gameobjects

When an enemy dies I am setting active gameobject to false instead of destroying it then activating it again and transforming the position to respawn. My question is, is there a better method of completing that method then I am already doing. Some objects seem to not deactivate certain things. I’ve notice if you deactivate the player and using yield WaitForSeconds that it only deactivates movement instead and leaving the cam on and all other attached script. Also I’ve been using the same method on AI and it’s worked for the longest time very good but recently now it won’t deactivate the actual object itself and I don’t know why. Other enemies the are not of the same script work fine tho and I have not changed anything. If anyone can help me out it will be greatly appreciated. here is my scripts:

Respawn Script:

var SphereHealth1 : GameObject;
var EnemySphere : AIhitPoints;

function Update()
{
   if(SphereHealth1.hitPoints <= 0)
   {
      Exp.CurExp += 10;
      Exp.CurKillstreak += 1;
      Exp.Kills += 1;
      DisplayGUI();
      Sphere1Die();
      SphereHealth1.hitPoints += 100;
   }
}

function Sphere1Die()
{
   EnemySphere1.active = false;
   yield WaitForSeconds(10);
   EnemySphere1.active = true;
}

AIhitPoints Script:

var hitPoints : int = 100.0;

function ApplyDamage (damage : float)
{
   if(hitPoints <= 0.0)
   {
       ***"particle emitter crap"***
   }
}

and thats about the only things that are attached that effects it.

Use EnemySphere1.SetActiveRecursively(true/false) instead. This function deactivates or activates the game object and all its children at once.

NOTE: I’m supposing EnemySphere1 is a GameObject.