How to prevent an audio clip being spammed?

var reload : AudioClip;

function Update (){

    if (Input.GetKeyDown("r")) {
    	audio.PlayOneShot(reload);
    }
}

This JavaScript works fine but if you repeatedly press R, it spams the sound and eventually makes a huge audio mess. How do i prevent this?

Move it into a coroutine

http://forum.unity3d.com/threads/6259-Audio-coroutine