diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 2d157c675ce51382c462ba80bf1c6209f00fa1ec..65885711f9af91cf8cd5e3671b030d61853f821f 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -1449,31 +1449,33 @@ public class FMRadioService extends Service
        resolver.insert(uri, values);
    }
 
-    private void resumeAfterCall() {
-        if (getCallState() != TelephonyManager.CALL_STATE_IDLE)
-            return;
-
-        // start playing again
-        if (!mResumeAfterCall)
-            return;
-
-        // resume playback only if FM Radio was playing
-        // when the call was answered
-        if (isAntennaAvailable() && (!isFmOn()) && mServiceInUse) {
-            Log.d(LOGTAG, "Resuming after call:");
-            if(!fmOn()) {
+   Runnable resumeAfterCall = new Runnable() {
+        public void run() {
+            if (getCallState() != TelephonyManager.CALL_STATE_IDLE)
                 return;
-            }
-            mResumeAfterCall = false;
-            if (mCallbacks != null) {
-                try {
-                    mCallbacks.onEnabled();
-                } catch (RemoteException e) {
-                    e.printStackTrace();
+
+            // start playing again
+            if (!mResumeAfterCall)
+                return;
+
+            // resume playback only if FM Radio was playing
+            // when the call was answered
+            if (isAntennaAvailable() && (!isFmOn()) && mServiceInUse) {
+                Log.d(LOGTAG, "Resuming after call:");
+                if(!fmOn()) {
+                    return;
+                }
+                mResumeAfterCall = false;
+                if (mCallbacks != null) {
+                    try {
+                        mCallbacks.onEnabled();
+                    } catch (RemoteException e) {
+                        e.printStackTrace();
+                    }
                 }
             }
         }
-    }
+    };
 
    private void fmActionOnCallState( int state ) {
    //if Call Status is non IDLE we need to Mute FM as well stop recording if
@@ -1623,7 +1625,11 @@ public class FMRadioService extends Service
                       mStoppedOnFocusLoss = false;
                       if (mResumeAfterCall) {
                           Log.v(LOGTAG, "resumeAfterCall");
-                          resumeAfterCall();
+                          if (getCallState() != TelephonyManager.CALL_STATE_IDLE) {
+                              mHandler.postDelayed(resumeAfterCall, 100);
+                              return;
+                          }
+                          mHandler.post(resumeAfterCall);
                           break;
                       }
                       if(false == mPlaybackInProgress)