diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 032406e..7e7ee3f 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -2043,10 +2043,6 @@
 
         processConfigEvents();
 
-if (mType == DIRECT) {
-        activeTrack.clear();
-}
-
         mixerStatus = MIXER_IDLE;
         { // scope for mLock
 
@@ -2138,10 +2134,6 @@
             lockEffectChains_l(effectChains);
         }
 
-if (mType == DIRECT) {
-        // For DirectOutputThread, this test is equivalent to "activeTrack != 0"
-}
-
         if (CC_LIKELY(mixerStatus == MIXER_TRACKS_READY)) {
             threadLoop_mix();
         } else {
@@ -2196,10 +2188,6 @@
         // same lock.
         tracksToRemove.clear();
 
-// FIXME merge these
-if (mType == DIRECT) {
-        activeTrack.clear();
-}
         // FIXME I don't understand the need for this here;
         //       it was in the original code but maybe the
         //       assignment in saveOutputTracks() makes this unnecessary?
@@ -2918,7 +2906,7 @@
 
             // reset retry count
             track->mRetryCount = kMaxTrackRetriesDirect;
-            activeTrack = t;
+            mActiveTrack = t;
             mixerStatus_ = MIXER_TRACKS_READY;
         } else {
             //ALOGV("track %d u=%08x, s=%08x [NOT READY]", track->name(), cblk->user, cblk->server);
@@ -2968,7 +2956,7 @@
     // output audio to hardware
     while (frameCount) {
         buffer.frameCount = frameCount;
-        activeTrack->getNextBuffer(&buffer);
+        mActiveTrack->getNextBuffer(&buffer);
         if (CC_UNLIKELY(buffer.raw == NULL)) {
             memset(curBuf, 0, frameCount * mFrameSize);
             break;
@@ -2976,10 +2964,11 @@
         memcpy(curBuf, buffer.raw, buffer.frameCount * mFrameSize);
         frameCount -= buffer.frameCount;
         curBuf += buffer.frameCount * mFrameSize;
-        activeTrack->releaseBuffer(&buffer);
+        mActiveTrack->releaseBuffer(&buffer);
     }
     sleepTime = 0;
     standbyTime = systemTime() + standbyDelay;
+    mActiveTrack.clear();
     applyVolume();
 }
 
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index e26466f..d91cd60 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -973,8 +973,6 @@
         mixer_state mPrevMixerStatus; // previous status returned by prepareTracks_l()
         // DIRECT only
         nsecs_t                         standbyDelay;
-        // activeTrack was local to the while !exitingPending loop
-        sp<Track>                       activeTrack;
         // DUPLICATING only
         uint32_t                        writeFrames;
     };
@@ -1046,6 +1044,9 @@
 
 private:
                     void        applyVolume();  // FIXME inline into threadLoop_mix()
+
+        // prepareTracks_l() tells threadLoop_mix() the name of the single active track
+        sp<Track>               mActiveTrack;
     };
 
     class DuplicatingThread : public MixerThread {
