+ vlc_mutex_lock( &p_intf->change_lock );
+ if( p_intf->p_input != NULL )
+ {
+ /* end playing item */
+ p_intf->p_input->b_eof = 1;
+
+ /* update playlist */
+ vlc_mutex_lock( &p_main->p_playlist->change_lock );
+
+ p_main->p_playlist->i_index--;
+ p_main->p_playlist->b_stopped = 1;
+
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
+
+ /* FIXME: ugly hack to close input and outputs */
+ p_intf->pf_manage( p_intf );
+ p_main->p_playlist->b_stopped = 0;
+ p_intf->pf_manage( p_intf );
+ }
+ vlc_mutex_unlock( &p_intf->change_lock );
+