audio.Stop() Broken in Unity 3?

Perhaps my code is wrong, but I cannot seem to figure out how to stop the darn audio. It worked fine in Unity iPhone. The music is playing, when I say audio.Stop it should stop. This does not happen.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;


public class SoundManager : MonoBehaviour 
{
	public AudioClip ReelStopSoundStandard;
	public AudioClip ReelSpinMusic1;
	public AudioClip ReelSpinMusic2;
	public AudioClip ReelSpinMusic3;
	public AudioClip SpinButton;
	int reelSpinMusicCounter = 1;
	
	public void PlayReelStopStandard()
	{
		audio.PlayOneShot(ReelStopSoundStandard);
	}
	
	public void PlaySpinButton()
	{
		audio.PlayOneShot(SpinButton);
	}
	
	public void StopMusic()
	{
		audio.Stop();
	}
	
	public void PlayReelSpinMusic()
	{
		
		switch(reelSpinMusicCounter)
		{
		case 1:
			audio.PlayOneShot(ReelSpinMusic1);
			break;
		case 2:
			audio.PlayOneShot(ReelSpinMusic2);
			break;
		case 3:
			audio.PlayOneShot(ReelSpinMusic3);
			break;
			
		}
		
		reelSpinMusicCounter++;
		
		if (reelSpinMusicCounter == 4)
			reelSpinMusicCounter = 1;
		
	}
}

I have also tried:
audio.Clip = ReelSpinMusic1;
audio.Play();

But it still will not stop. audio.Pause won’t work either.

I have a SoundManager script on a gameobject. I have an audio source for each clip on the object and the sound file is dragged onto the public variable slot for each variable in this script.

Is this happening on the device itself or in the editor (or both)? Have you been able to establish that the StopMusic function gets called, say by using a Debug.Log or GUI call or with the debugger?

I have had to destroy and instantiate sound clips to route around this issue. I get the timing of the clip and use a yield statement to set the Destroy based on that. The caveat… iOS like to pile up memory when destroying or instantiating objects. I have asked a half dozen times how to clear unused memory on the iDevice and haven’t heard a peep.

HTH
BTH