Can't Instantiate an object as child of another

I have a script which creates several game objects. Whenever I try to make the new objects child of the object owning the script, I get the error: “Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption”

This is the code for the game object instantiation.

GameObject b = Instantiate(buttonRefs*) as GameObject;* *b.transform.SetParent(transform); //The new button is child of button brancher* *b.transform.position = transform.position;*

buttonRefs is nothing more than an array of prefabs.
Any comment is welcome!

Do like this :

GameObject instantiateAble = Resources.Load <GameObject> (Constants.PATH_PREFABS_BASE + Constants.PREFABS_ANNOTAION_PADS);
		GameObject go = Instantiate (instantiateAble,
			                annotation.position, 
			                Quaternion.identity) as GameObject;
		go.transform.SetParent (parent.transform);

I think as you are instantiating and directly setting as prefab… so he is referencing as the original object.
That’s why I do get the gameobject form the resources then Instantiate it.

Thanks