diff --git a/media/libstagefright/timedtext/TimedTextDriver.cpp b/media/libstagefright/timedtext/TimedTextDriver.cpp
index 54ce7ac..12fd7f4 100644
--- a/media/libstagefright/timedtext/TimedTextDriver.cpp
+++ b/media/libstagefright/timedtext/TimedTextDriver.cpp
@@ -43,7 +43,8 @@
         const wp<MediaPlayerBase> &listener)
     : mLooper(new ALooper),
       mListener(listener),
-      mState(UNINITIALIZED) {
+      mState(UNINITIALIZED),
+      mCurrentTrackIndex(UINT_MAX) {
     mLooper->setName("TimedTextDriver");
     mLooper->start();
     mPlayer = new TimedTextPlayer(listener);
@@ -57,6 +58,9 @@
 }
 
 status_t TimedTextDriver::selectTrack_l(size_t index) {
+    if (mCurrentTrackIndex == index) {
+        return OK;
+    }
     sp<TimedTextSource> source;
     source = mTextSourceVector.valueFor(index);
     mPlayer->setDataSource(source);
@@ -138,11 +142,12 @@
     if (mCurrentTrackIndex != index) {
         return INVALID_OPERATION;
     }
+    mCurrentTrackIndex = UINT_MAX;
     switch (mState) {
         case UNINITIALIZED:
             return INVALID_OPERATION;
         case PLAYING:
-            mPlayer->pause();
+            mPlayer->setDataSource(NULL);
             mState = UNINITIALIZED;
             return OK;
         case PREPARED:
diff --git a/media/libstagefright/timedtext/TimedTextPlayer.cpp b/media/libstagefright/timedtext/TimedTextPlayer.cpp
index e3bdd8a..9fb0afe 100644
--- a/media/libstagefright/timedtext/TimedTextPlayer.cpp
+++ b/media/libstagefright/timedtext/TimedTextPlayer.cpp
@@ -183,11 +183,20 @@
             break;
         }
         case kWhatSetSource: {
+            mSendSubtitleGeneration++;
             sp<RefBase> obj;
             msg->findObject("source", &obj);
-            if (obj == NULL) break;
             if (mSource != NULL) {
                 mSource->stop();
+                mSource.clear();
+                mSource = NULL;
+            }
+            // null source means deselect track.
+            if (obj == NULL) {
+                mPendingSeekTimeUs = kInvalidTimeUs;
+                mPaused = false;
+                notifyListener();
+                break;
             }
             mSource = static_cast<TimedTextSource*>(obj.get());
             status_t err = mSource->start();
@@ -217,6 +226,7 @@
     int64_t startTimeUs = 0;
     int64_t endTimeUs = 0;
     sp<ParcelEvent> parcelEvent = new ParcelEvent();
+    CHECK(mSource != NULL);
     status_t err = mSource->read(&startTimeUs, &endTimeUs,
                                  &(parcelEvent->parcel), options);
     if (err == WOULD_BLOCK) {
