DestroyOnLoad???

hey, i have a problem with my scene now. i have a 3 scene in my project. if i open third scene from second scene it`s no problem. But, my problem is if i open the second scene from first scene then i open the third scene from the second scene, My gameObject is Destroy ! I have attach the script that have function

DontDestroyOnLoad(transform.gameObject);

but it`s still destroyed. How can i fix it ?

using UnityEngine;
using System.Collections;
public class SceneLoader : MonoBehaviour
{
    void Start()
    {
        DontDestroyOnLoad(gameObject);
    }
    void OnGUI()
    {
        if (GUI.Button(new Rect(5, 5, 100, 30), "scene 1")) { Application.LoadLevel("scene1"); }
        if (GUI.Button(new Rect(5, 35, 100, 30), "scene 2")) { Application.LoadLevel("scene2"); }
        if (GUI.Button(new Rect(5, 65, 100, 30), "scene 3")) { Application.LoadLevel("scene3"); }
    }
}

this script attached to some GameObject keeps this GameObject from destroying and always shows a menu for select one of 3 scenes to load. note that scenes with these names must exists and be included in build options. pressing a gui button loads selected scene as well.