GUILayout.Label is not displaying on level load

I have a script that is checking a line from a text file and then displaying the word using Labels. I call the function that gets the line in Start() and my GUILayout.Label is being run in OnGUI(). I also call the function to get a line on a button press in OnGUI(). Problem is, that the Layout will only display when I press the button, but not on the first check of OnGUI() after Start() runs. I have verified that the I am getting a valid word to display in Start(), so I have no idea why the Label is not displaying. my code follows:

 function Start()
{
	Debug.Log("Script has Started");
	if(newgame == true)
	{
		newgame = false;
		word = "";
		GetWord();
		
	}

}
function GetWord()
{
		keyboardInstance.win = false;
		keyboardInstance.played = false;
		keyboardInstance.rightLetterCount = 0;
		keyboardInstance.wrongCount = 0;
		keyboardInstance.a = a;
		keyboardInstance.b = b;
		keyboardInstance.c = c;
		keyboardInstance.d = d;
		keyboardInstance.e = e;
		keyboardInstance.f = f;
		keyboardInstance.g = g;
		keyboardInstance.h = h;
		keyboardInstance.i = i;
		keyboardInstance.j = j;
		keyboardInstance.k = k;
		keyboardInstance.l = l;
		keyboardInstance.m = m;
		keyboardInstance.n = n;
		keyboardInstance.o = o;
		keyboardInstance.p = p;
		keyboardInstance.q = q;
		keyboardInstance.r = r;
		keyboardInstance.s = s;
		keyboardInstance.t = t;
		keyboardInstance.u = u;
		keyboardInstance.v = v;
		keyboardInstance.w = w;
		keyboardInstance.x = x;
		keyboardInstance.y = y;
		keyboardInstance.z = z;
		for (keyboardInstance.keyIndex = 0; keyboardInstance.keyIndex < 26; keyboardInstance.keyIndex++)
		{
			keyboardInstance.keyPressed[keyboardInstance.keyIndex] = false;
		}
		var sr : StreamReader = new StreamReader(path);
		var fileContents = sr.ReadToEnd();
		sr.Close();
	
		var randomNumber = Random.Range(0, numWords);
		var i : int = randomNumber;
	
		var lines = fileContents.Split("

"[0]);

		for (line in lines*) {*
  •  	word += line;*
    
  •  }*
    
  •  textureArray = new Texture[(word.length - 1)];*
    
  •  dashWidth = Screen.width/(word.length - 1);*
    
  •  for (index = 0; index < (word.length - 1); index++){*
    
  •  	textureArray[index] = underscore;*
    
  •  }*
    
  •  activeWord = true;*
    
  •  Debug.Log(word);*
    

}

function OnGUI () {

  • if (word != “”){*

  • GUI.Label(Rect(Screen.width/2,Screen.height/2,70,70),textureArray[0]);*
    _ GUILayout.BeginArea(Rect(Screen.width/2 - ((word.Length - 1) * 70)/2,Screen.height - Screen.height/2,70 * (word.Length - 1),(Screen.height - Screen.height/2)/2));_

  •  GUILayout.BeginHorizontal();*
    
  •  	for (counter = 0; counter < chars; counter++)*
    
  •  	{*
    
  •  		GUILayout.Label(textureArray[counter]);		*
    
  •  	}*
    
  •  GUILayout.EndHorizontal();*
    
  • GUILayout.EndArea();*

  • activeWord = false;*

  • }*

  • if (GUI.Button(Rect(20,260,100,100),“”,newGame)){*

  •  if (word != ""){*
    
  •  	word = "";*
    
  •  	GetWord();*
    
  •  }*
    

Are you sure newgame is true before Start? Is it declared like var newgame = true; ?