diff --git a/gst-libs/gst/player/gstplayer.c b/gst-libs/gst/player/gstplayer.c index 5dd340af8b..5ab9e03e32 100644 --- a/gst-libs/gst/player/gstplayer.c +++ b/gst-libs/gst/player/gstplayer.c @@ -492,7 +492,10 @@ gst_player_dispose (GObject * object) if (self->loop) { g_main_loop_quit (self->loop); - g_thread_join (self->thread); + if (self->thread != g_thread_self ()) + g_thread_join (self->thread); + else + g_thread_unref (self->thread); self->thread = NULL; g_main_loop_unref (self->loop);