thanks for the quick reply Aren, you assume right!

here's the code I'm using:
public class assignSpriteTest : MonoBehaviour {
public UI2DSprite my2DSprite;
public UnityEngine.Sprite newSprite;
public void OnClick ()
{
Debug.Log ("my2DSprite.sprite2D.name= " + my2DSprite.sprite2D.name);
my2DSprite.sprite2D = newSprite;
Debug.Log ("my2DSprite.sprite2D.name= " + my2DSprite.sprite2D.name);
}
}
when I click the button this script is assigned to, the console outputs:
my2DSprite.sprite2D.name= (original sprite's name)
my2DSprite.sprite2D.name= (newSprite's name)Which seems to me like everything works fine except the original-sprite is still visible, not the new one. Help!