diff --git a/modules/control/rc.c b/modules/control/rc.c
index 360ece2609184919f5da912428305b2be2f76193..d7db6527a26772f041203684bdfda09c1b5b0480 100644
--- a/modules/control/rc.c
+++ b/modules/control/rc.c
@@ -1498,10 +1498,9 @@ static int Volume( vlc_object_t *p_this, char const *psz_cmd,
     {
         /* Set. */
         audio_volume_t i_volume = atoi( newval.psz_string );
-        if( i_volume == 0 )
-            aout_MuteToggle( p_playlist );
         if( !aout_VolumeSet( p_playlist, i_volume ) )
             i_error = VLC_SUCCESS;
+        aout_MuteSet( p_playlist, i_volume == 0 );
         osd_Volume( p_this );
         msg_rc( STATUS_CHANGE "( audio volume: %d )", i_volume );
     }