guiTexture not drawing on screen

no matter what values I give the pixel inset, it won't appear on the screen. Even when I manually set the positions in the rect. Anyone know why? I have confirmed the texture is applied too.

    void createBangPow()
{
    GameObject temp = (GameObject)Instantiate(bangPow);
    temp.transform.parent = transform;
    GUITexture tex = temp.GetComponent<GUITexture>();
    Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
    tex.texture = textures[Random.Range(0, textures.Count)];
    tex.pixelInset = new Rect(pos.x, pos.y, 40f, 40f);
}

GUITexture objects use viewport space, and therefore can't have objects using 3D space as parents, or they will almost certainly be outside the viewable 0..1 range.

I'm having the same problem. I compare the instantiated GameObject with the original, and they are almost identical (with very slight variations on the transform and PixelInset). But the clone will not display.

If I use essentially the same code with a GameObject that has a mesh associated with it instead of a GUITexture, it works fine. The conclusion I have come to is that you can't Instantiate a prefab with just a GUITexture Component on it. It just won't work.

Has anyone successfully done it?