Sprite-button being pressed when not even pointed

I’ve made sprite-button with OnMouseUpAsButton() and all that stuff that calls method on menu object that draws menu with OnGUI() methods. And it works Ok except one problem: when I press GUI-button that closes menu (sets “opened” flag to false stopping menu drawing) the sprite-button is being pressed again opening it. I’ve checked everything: I’m absolutely sure that sprite-button’s OnMouseUpAsButton() is being called again even it is not pressed. Any ideas?

Ok, here are some strings:

    public class StoreButton : MonoBehaviour {
    	void OnMouseUpAsButton()
    	{
    		GameObject.Find ("Shop").SendMessage("Open", gameObject);
    	}
    }

And that’s a part of menu code:

            public class Shop : MonoBehaviour {
            	private bool opened = false;
    
            	void OnGUI()
            	{
            		if (opened == true) {	
            						GUI.Box (new Rect (x, y, 650, 650), "", "Box");
            						toolbarInt = GUI.Toolbar (new Rect (x + 7, y + 12, 636, 41), toolbarInt, toolbarStrings, "button");
            						switch (toolbarInt) {
            							case 0: break;
            							case 1: break;
            							case 2: break;
            							case 3: break;
            						}
            						if (GUI.Button (new Rect (x + 315, y + 557, 157, 66), "Продолжить", "continue"))
            								Close ();
            								
            				}
            	}
    			void Open(GameObject caller)
    			{
    				opened = true;
    			}
    
    			void Close()
    			{
    				opened = false;
    			}
		}

So it is some sort of Unity bug with GUI. Using nGUI can help.