Invisible gui problem

I created a GUI using a very basic script. When I open a different scene or transfer between scenes, most of the GUIs I created become invisible. What causes this and how do I correct this?

this is the script:

var icon : Texture2D;

function OnGUI () {
    if (GUI.Button (Rect (550,250, 150,100), icon)) {
        print ("you clicked the icon");
    }
}

did you have the GUI script on the new scene after you loaded it? gameObjects and attached scripts are destroyed if you call Application.LoadLevel()