diff --git a/src/cobalt/build/build.id b/src/cobalt/build/build.id
index 66145f8..9765737 100644
--- a/src/cobalt/build/build.id
+++ b/src/cobalt/build/build.id
@@ -1 +1 @@
-18938
\ No newline at end of file
+18971
\ No newline at end of file
diff --git a/src/starboard/shared/alsa/alsa_audio_sink_type.cc b/src/starboard/shared/alsa/alsa_audio_sink_type.cc
index 1556242..4c91f52 100644
--- a/src/starboard/shared/alsa/alsa_audio_sink_type.cc
+++ b/src/starboard/shared/alsa/alsa_audio_sink_type.cc
@@ -225,6 +225,8 @@
 bool AlsaAudioSink::IdleLoop() {
   SB_DLOG(INFO) << "alsa::AlsaAudioSink enters idle loop";
 
+  bool drain = true;
+
   for (;;) {
     {
       ScopedLock lock(mutex_);
@@ -239,12 +241,12 @@
     if (is_playing && frames_in_buffer > 0) {
       return true;
     }
-    int delayed_frame = AlsaGetBufferedFrames(playback_handle_);
-    if (delayed_frame < kMinimumFramesInALSA) {
+    if (drain) {
+      drain = false;
       AlsaWriteFrames(playback_handle_, silence_frames_, kFramesPerRequest);
-    } else {
-      SbThreadSleep(time_to_wait_);
+      AlsaDrain(playback_handle_);
     }
+    SbThreadSleep(time_to_wait_);
   }
 
   return false;
diff --git a/src/starboard/shared/alsa/alsa_util.cc b/src/starboard/shared/alsa/alsa_util.cc
index 0568156..b99c848 100644
--- a/src/starboard/shared/alsa/alsa_util.cc
+++ b/src/starboard/shared/alsa/alsa_util.cc
@@ -172,15 +172,16 @@
     return 0;
   }
 
+  int error;
+  snd_pcm_t* handle = reinterpret_cast<snd_pcm_t*>(playback_handle);
+
   int frames = 0;
   for (;;) {
-    frames = snd_pcm_writei(reinterpret_cast<snd_pcm_t*>(playback_handle),
-                            buffer, frames_to_write);
+    frames = snd_pcm_writei(handle, buffer, frames_to_write);
     if (frames > 0) {
       return frames;
     } else if (frames == -EPIPE) {
-      int error =
-          snd_pcm_prepare(reinterpret_cast<snd_pcm_t*>(playback_handle));
+      error = snd_pcm_prepare(handle);
       ALSA_CHECK(error, snd_pcm_prepare, 0);
     } else {
       ALSA_CHECK(frames, snd_pcm_writei, 0);
@@ -195,13 +196,16 @@
 int AlsaGetBufferedFrames(void* playback_handle) {
   int error;
   snd_pcm_t* handle = reinterpret_cast<snd_pcm_t*>(playback_handle);
-  // snd_pcm_delay() isn't able to catch xrun, so we explicitly check for xrun.
-  if (snd_pcm_state(handle) == SND_PCM_STATE_XRUN) {
+  int state = snd_pcm_state(handle);
+  // snd_pcm_delay() isn't able to catch xrun or setup, so we explicitly check
+  // for them.
+  if (state == SND_PCM_STATE_XRUN || state == SND_PCM_STATE_SETUP) {
     error = snd_pcm_prepare(handle);
     ALSA_CHECK(error, snd_pcm_prepare, -1);
     // The buffer has already been reset, so the delay is 0.
     return 0;
   }
+
   snd_pcm_sframes_t delay;
   error = snd_pcm_delay(handle, &delay);
   if (error == 0) {
@@ -223,6 +227,16 @@
   }
 }
 
+void AlsaDrain(void* playback_handle) {
+  if (playback_handle) {
+    snd_pcm_t* handle = reinterpret_cast<snd_pcm_t*>(playback_handle);
+
+    int error;
+    error = snd_pcm_drain(handle);
+    SB_DCHECK(error >= 0);
+  }
+}
+
 }  // namespace alsa
 }  // namespace shared
 }  // namespace starboard
diff --git a/src/starboard/shared/alsa/alsa_util.h b/src/starboard/shared/alsa/alsa_util.h
index bbbe04f..c0d068f 100644
--- a/src/starboard/shared/alsa/alsa_util.h
+++ b/src/starboard/shared/alsa/alsa_util.h
@@ -36,6 +36,7 @@
                     int frames_to_write);
 int AlsaGetBufferedFrames(void* playback_handle);
 void AlsaCloseDevice(void* playback_handle);
+void AlsaDrain(void* playback_handle);
 
 }  // namespace alsa
 }  // namespace shared
