diff --git a/include/media/stagefright/SurfaceMediaSource.h b/include/media/stagefright/SurfaceMediaSource.h
index f60a535..82e5965 100644
--- a/include/media/stagefright/SurfaceMediaSource.h
+++ b/include/media/stagefright/SurfaceMediaSource.h
@@ -193,8 +193,8 @@
     // Set to a default of 30 fps if not specified by the client side
     int32_t mFrameRate;
 
-    // mStopped is a flag to check if the recording is going on
-    bool mStopped;
+    // mStarted is a flag to check if the recording is going on
+    bool mStarted;
 
     // mNumFramesReceived indicates the number of frames recieved from
     // the client side
diff --git a/media/libstagefright/SurfaceMediaSource.cpp b/media/libstagefright/SurfaceMediaSource.cpp
index 9d39d0e..97f9c7c 100644
--- a/media/libstagefright/SurfaceMediaSource.cpp
+++ b/media/libstagefright/SurfaceMediaSource.cpp
@@ -42,7 +42,7 @@
     mNumPendingBuffers(0),
     mCurrentTimestamp(0),
     mFrameRate(30),
-    mStopped(false),
+    mStarted(false),
     mNumFramesReceived(0),
     mNumFramesEncoded(0),
     mFirstFrameTimestamp(0),
@@ -80,7 +80,7 @@
 
 SurfaceMediaSource::~SurfaceMediaSource() {
     ALOGV("~SurfaceMediaSource");
-    CHECK(mStopped == true);
+    CHECK(!mStarted);
 }
 
 nsecs_t SurfaceMediaSource::getTimestamp() {
@@ -140,6 +140,8 @@
 
     Mutex::Autolock lock(mMutex);
 
+    CHECK(!mStarted);
+
     mStartTimeNs = 0;
     int64_t startTimeUs;
     int32_t bufferCount = 0;
@@ -171,6 +173,7 @@
     }
 
     mNumPendingBuffers = 0;
+    mStarted = true;
 
     return OK;
 }
@@ -191,7 +194,7 @@
     ALOGV("stop");
     Mutex::Autolock lock(mMutex);
 
-    if (mStopped) {
+    if (!mStarted) {
         return OK;
     }
 
@@ -208,7 +211,7 @@
         mMediaBuffersAvailableCondition.wait(mMutex);
     }
 
-    mStopped = true;
+    mStarted = false;
     mFrameAvailableCondition.signal();
     mMediaBuffersAvailableCondition.signal();
 
@@ -270,7 +273,7 @@
 
     *buffer = NULL;
 
-    while (!mStopped && mNumPendingBuffers == mMaxAcquiredBufferCount) {
+    while (mStarted && mNumPendingBuffers == mMaxAcquiredBufferCount) {
         mMediaBuffersAvailableCondition.wait(mMutex);
     }
 
@@ -281,7 +284,7 @@
     BufferQueue::BufferItem item;
     // If the recording has started and the queue is empty, then just
     // wait here till the frames come in from the client side
-    while (!mStopped) {
+    while (mStarted) {
 
         status_t err = mBufferQueue->acquireBuffer(&item);
         if (err == BufferQueue::NO_BUFFER_AVAILABLE) {
@@ -322,7 +325,7 @@
 
     // If the loop was exited as a result of stopping the recording,
     // it is OK
-    if (mStopped) {
+    if (!mStarted) {
         ALOGV("Read: SurfaceMediaSource is stopped. Returning ERROR_END_OF_STREAM.");
         return ERROR_END_OF_STREAM;
     }
