diff --git a/libvideoeditor/lvpp/VideoEditorPreviewController.cpp b/libvideoeditor/lvpp/VideoEditorPreviewController.cpp
index 0b7c3ef..6e7eceb 100755
--- a/libvideoeditor/lvpp/VideoEditorPreviewController.cpp
+++ b/libvideoeditor/lvpp/VideoEditorPreviewController.cpp
@@ -27,6 +27,7 @@
     : mCurrentPlayer(0),
       mThreadContext(NULL),
       mPlayerState(VePlayerIdle),
+      mPrepareReqest(M4OSA_FALSE),
       mClipList(NULL),
       mNumberClipsInStoryBoard(0),
       mNumberClipsToPreview(0),
@@ -479,6 +480,7 @@
     }
 
     mPlayerState = VePlayerIdle;
+    mPrepareReqest = M4OSA_FALSE;
 
     if(fromMS == 0) {
         mCurrentClipNumber = -1;
@@ -662,6 +664,7 @@
     mClipList[mNumberClipsToPreview-1]->uiEndCutTime = mLastPreviewClipEndTime;
 
     mPlayerState = VePlayerIdle;
+    mPrepareReqest = M4OSA_FALSE;
 
     mCurrentPlayedDuration = 0;
     mCurrentClipDuration = 0;
@@ -1053,12 +1056,15 @@
 
         pController->mPlayerState = VePlayerBusy;
 
-    }
-    else if(pController->mPlayerState == VePlayerAutoStop) {
+    } else if(pController->mPlayerState == VePlayerAutoStop) {
         LOGV("Preview completed..auto stop the player");
-    }
-    else {
-        if(!pController->bStopThreadInProgress) {
+    } else if ((pController->mPlayerState == VePlayerBusy) && (pController->mPrepareReqest)) {
+        // Prepare the player here
+        pController->mPrepareReqest = M4OSA_FALSE;
+        preparePlayer((void*)pController, pController->mCurrentPlayer,
+            pController->mCurrentClipNumber+1);
+    } else {
+        if (!pController->bStopThreadInProgress) {
             LOGV("threadProc: state busy...wait for sem");
             err = M4OSA_semaphoreWait(pController->mSemThreadWait,
              M4OSA_WAIT_FOREVER);
@@ -1147,7 +1153,7 @@
             break;
         case 0xAAAAAAAA:
             LOGV("VIDEO PLAYBACK ALMOST over, prepare next player");
-
+            pController->mPrepareReqest = M4OSA_TRUE;
             // Select next player and prepare it
             // If there is a clip after this one
             if ((pController->mCurrentClipNumber+1) <
@@ -1158,8 +1164,7 @@
                     pController->mCurrentPlayer = 0;
                 }
                 // Prepare the first clip to be played
-                preparePlayer((void*)pController, pController->mCurrentPlayer,
-                    pController->mCurrentClipNumber+1);
+                M4OSA_semaphorePost(pController->mSemThreadWait);
             }
             break;
         case 0xBBBBBBBB:
diff --git a/libvideoeditor/lvpp/VideoEditorPreviewController.h b/libvideoeditor/lvpp/VideoEditorPreviewController.h
index d2a5645..2a2a665 100755
--- a/libvideoeditor/lvpp/VideoEditorPreviewController.h
+++ b/libvideoeditor/lvpp/VideoEditorPreviewController.h
@@ -93,6 +93,7 @@
     mutable Mutex mLock;
     M4OSA_Context mThreadContext;
     VePlayerState mPlayerState;
+    M4OSA_Bool    mPrepareReqest;
     M4VSS3GPP_ClipSettings **mClipList; //Pointer to an array of clip settings
     M4OSA_UInt32 mNumberClipsInStoryBoard;
     M4OSA_UInt32 mNumberClipsToPreview;
