Touch returns twice on Android

This is driving me insane. I thought I had it down, moving my raycasting code right into the Update function, but no luck. Whenever I touch a button on my android tablet (Nexus 7 2013), my tests show that it’s been touched twice. No problem whatsoever with the editor. Any idea how this is happening? Here’s the relevant code:

	void Update () {
		CheckTouches();
		StaticIfNotInFocus(staticEnabled);
		if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began){
				Ray ray = guiCamera.ScreenPointToRay(Input.GetTouch (0).position);
				RaycastHit hit;
			
				if(Physics.Raycast (ray, out hit, guiLayerMask)){
					testButton = "Hit Button: "+hit.collider.transform.parent.name;
					WhichButtonPressed(hit.collider.transform.parent.name);
				}
		}
	}
	
	
	void CheckTouches(){
		if(Input.GetButtonDown("Fire1")){
			Ray ray = guiCamera.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit;
		
			if(Physics.Raycast (ray, out hit, guiLayerMask)){
				testButton = "Hit Button: "+hit.collider.transform.parent.name;
				WhichButtonPressed(hit.collider.transform.parent.name);
			}
		}
	}

Uhmm…comment out the CheckTouches call at line 2? Your code is doing a raycast twice.