SetActive(false) doesn't works

In my game when beaver appear on the screen and when I press on it, his eyes became red (before pressing it white). Throught 1.5 second beaver disappear, but when he appear again, his eyes are still red, but must be white.

OnBeaverClick.cs

public GameObject redBeaver;

void OnMouseDown()
{
    StartCoroutine ("HitBeaver");
}

IEnumerator HitBeaver()
{
    redBeaver.SetActive (true);
        // here 1.1, because in coroutine below
        // beaver object disabling throught 1.5 seconds,
        // so it 0.4 second to go between this operations
    yield return new WaitForSeconds (1.1f);
    redBeaver.SetActive (false); // Doesn't works
}

Beaver.cs

void Update()
{
    if (myVis)
        StartCoroutine ("HitBeaver");
}

IEnumerator HitBeaver()
{
	myVis = false;
	currentBeaver = Random.Range (0, 14);
	beavers [currentBeaver].SetActive (true);
	yield return new WaitForSeconds (1.5f);
	beavers [currentBeaver].SetActive (false);
	myVis = true;
}

The first when the beaver got out, you click a mouse. Works onMouseDown event (). But while the beaver is active you can click more and more time. Thus you launch some Coroutine of functions. To avoid it enter one more variable. The second, I would connect two scripts in one. But if you write two scripts, hope onBeaverClick be attached to each beaver. When the beaver appears it is possible to check his eyes. For example so:

OnBeaverClick.cs

 public GameObject redBeaver;
 private bool showRed = false;

 void OnMouseDown() {
  if (!showRed) {
   StartCoroutine ("HitBeaver");
  }
 }

 IEnumerator HitBeaver() {
  showRed = true;
  redBeaver.SetActive (true);
  yield return new WaitForSeconds (1.1f);
  showRed = false; //maybe it also isn't necessary
  redBeaver.SetActive (false); // Doesn't works
 }

Beaver.cs

 IEnumerator HitBeaver() {
  myVis = false;
  currentBeaver = Random.Range (0, 14);
  beavers [currentBeaver].SetActive (true);
  beavers [currentBeaver].GetComponent<OnBeaverClick>().redBeaver.setActive(false); //disable red eyes
  yield return new WaitForSeconds (1.5f);
  beavers [currentBeaver].SetActive (false);
  myVis = true;
 }

Now let’s provide a situation on seconds. The beaver seemed, he has 1.5 seconds of show. You clicked on it when passed 1.0 seconds of show and launched Coroutine with red eyes. But in 0.5 seconds the beaver shall disappear, and red eyes disappear only in 1.1 seconds. But remember when you set status of object as false, all its Coroutine interrupt. I hope that it will help you.