--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -875,8 +875,12 @@ gst_play_sink_get_sink (GstPlaySink * playsink, GstPlaySinkType type)
     case GST_PLAY_SINK_TYPE_TEXT:
     {
       GstPlayTextChain *chain;
-      if ((chain = (GstPlayTextChain *) playsink->textchain))
-        chainp = chain->sink;
+      if ((chain = (GstPlayTextChain *) playsink->textchain)) {
+        if (chain->overlay != NULL)
+          chainp = chain->overlay;
+        else
+          chainp = chain->sink;
+      }
       elem = playsink->text_sink;
       break;
     }
