diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index a5e1d13afd9a9c98f6c46b31c3736300ba4415ba..80f800cc979dc072d8269341caae67e40e1f561f 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -979,13 +979,28 @@ public class FMRadioService extends Service
                        && (key_action == KeyEvent.ACTION_DOWN)) {
                 Log.d(LOGTAG, "SessionCallback: MEDIA_PLAY");
                 if (isAntennaAvailable() && mServiceInUse) {
-                    fmOn();
-                    try {
-                        if (mCallbacks != null ) {
-                            mCallbacks.onEnabled();
+                    if (isFmOn()){
+                        //FM should be off when Headset hook pressed.
+                        fmOff();
+                        try {
+                            /* Notify the UI/Activity, only if the service is "bound"
+                             * by an activity and if Callbacks are registered
+                             * */
+                            if ((mServiceInUse) && (mCallbacks != null) ) {
+                                mCallbacks.onDisabled();
+                            }
+                        } catch (RemoteException e) {
+                            e.printStackTrace();
+                        }
+                    } else {
+                        fmOn();
+                        try {
+                            if (mCallbacks != null ) {
+                                mCallbacks.onEnabled();
+                            }
+                        } catch (RemoteException e) {
+                            e.printStackTrace();
                         }
-                    } catch (RemoteException e) {
-                        e.printStackTrace();
                     }
                     return true;
                 }