yield does not work

Hi my script is as follows:

var SpeedBoostDuration : int;

var SpeedIncrease : int;

function OnTriggerEnter (collisionInfo : Collider){

// If Player Collides with State Blue barrier gets destroyed

if (collisionInfo.gameObject.tag == “Player” && CharacterScript.PlayerState == 1)

{
    SpeedIncreaseTemp(SpeedIncrease);
    Destroy(gameObject);
} 

}
// function for giving player a boost

function SpeedIncreaseTemp(SpeedIncrease){

MoveLevelScript.speed += SpeedIncrease;
yield WaitForSeconds (1);
MoveLevelScript.speed -= SpeedIncrease;

}

I want to have a speed increase just for 1 second. The speed increase works however it is permanent and does not decrease after a second. Can anyone tell me what I did wrong

You should start the coroutine with the dedicated method:

if (collisionInfo.gameObject.tag == "Player" && CharacterScript.PlayerState == 1)

{
    yield StartCoroutine(speedIncreaseTemp(SpeedIncrease));
    Destroy(gameObject);
}