HighScore not updating when the game time is up...

Hi. I have two different scripts in the game, one for the countdown time (Timer) and one for the score (Score). And my point is to set a new HighScore when the time is up. However, the highscore doesn’t seem to be working when I call it on debug.log, it always stays as 0. What am I doing wrong?
Here is part of the Score script :

static var score : int = 00;
static var highscore : int = 00;
static var highScoreKey = "HighScore";

function Start () {

highscore = PlayerPrefs.GetInt(highScoreKey,0);
}

function SetNewHighScore () {
	if (Timer.seconds==0) {
		if (score > highscore) {
			PlayerPrefs.SetInt(highScoreKey, score);
			PlayerPrefs.Save();
		}
	}
}

And here is part of the Timer script where I call the saved data:

function OnGUI () {

textTime = String.Format("{00:00}", seconds);

	GUI.skin = theTimerSkin;
	GUI.Label (new Rect (Screen.width/2,18,100,100), textTime);

	if(seconds <= 0) {
	seconds=0;
	**Debug.Log(Score.highscore);**
	}
}

This bit:

    if (score > highscore) {
        PlayerPrefs.SetInt(highScoreKey, score);
        PlayerPrefs.Save();
    }

You’re updating the high score that’s saved on disk, but you’re not updating the variable highscore.

You need:

    if (score > highscore) {
        highscore = score;
        PlayerPrefs.SetInt(highScoreKey, score);
        PlayerPrefs.Save();
    }

You’re not showing anything that calls SetNewHighScore; are you sure that’s being called?