timer countdown too fast

my code for countdown is work, but when i activate it, the time twice faster from normal time

var g :float;
static var guiTime : float; 
function Awake(){
	guiTime=g;
	}
function OnGUI () {
	if (guiTime > 0){
	   guiTime -=  Time.deltaTime;var minutes : int = guiTime / 60;
	   var seconds : int = guiTime % 60;
	   var fraction : int = (guiTime * 100) % 100;

	   text = String.Format ("{0:00}:{1:00}:{2:000}", minutes, seconds, fraction); 
	   GUI.Label (Rect (400, 25, 100, 30), text);
	}
}

anybody know what’s wrong?

OnGUI() is called multiple times a frame so you are deducting deltaTime multiple times per frame. Move the guiTime -= Time.deltaTime; line to Update()

var g :float;
static var guiTime : float; 

function Awake()
{
    guiTime=g;
}

function OnGUI () {
    if (guiTime > 0){
       var minutes : int = guiTime / 60;
       var seconds : int = guiTime % 60;
       var fraction : int = (guiTime * 100) % 100;

       text = String.Format ("{0:00}:{1:00}:{2:000}", minutes, seconds, fraction); 
       GUI.Label (Rect (400, 25, 100, 30), text);
    }
}

function Update()
{
    guiTime -=  Time.deltaTime;
}

Time.deltaTime is meaningful only in Update() and FixedUpdate(). Move most of your routine to Update() and let only the statement GUI.Label(…) in OnGUI().