diff --git a/FMRecord/src/com/codeaurora/fmrecording/FMRecordingService.java b/FMRecord/src/com/codeaurora/fmrecording/FMRecordingService.java
index 4657e36..3fb6446 100644
--- a/FMRecord/src/com/codeaurora/fmrecording/FMRecordingService.java
+++ b/FMRecord/src/com/codeaurora/fmrecording/FMRecordingService.java
@@ -61,7 +61,6 @@
 public class FMRecordingService extends Service {
     private static final String TAG     = "FMRecordingService";
     private BroadcastReceiver mFmRecordingReceiver = null;
-    private BroadcastReceiver mSdcardUnmountReceiver = null;
     public static final long UNAVAILABLE = -1L;
     public static final long PREPARING = -2L;
     public static final long UNKNOWN_SIZE = -3L;
@@ -84,7 +83,6 @@
         super.onCreate();
         Log.d(TAG, "FMRecording Service onCreate");
         registerRecordingListner();
-        registerExternalStorageListener();
     }
 
     public int onStartCommand(Intent intent, int flags, int startId) {
@@ -100,7 +98,6 @@
             stopRecord();
         }
         unregisterBroadCastReceiver(mFmRecordingReceiver);
-        unregisterBroadCastReceiver(mSdcardUnmountReceiver);
         super.onDestroy();
     }
 
@@ -116,38 +113,6 @@
            myreceiver = null;
        }
    }
-    /**
-      * Registers an intent to listen for ACTION_MEDIA_UNMOUNTED notifications.
-      * The intent will call closeExternalStorageFiles() if the external media
-      * is going to be ejected, so applications can clean up.
-      */
-    private void registerExternalStorageListener() {
-        if (mSdcardUnmountReceiver == null) {
-            mSdcardUnmountReceiver = new BroadcastReceiver() {
-                @Override
-                public void onReceive(Context context, Intent intent) {
-                    String action = intent.getAction();
-                    if ((action.equals(Intent.ACTION_MEDIA_UNMOUNTED))
-                         || (action.equals(Intent.ACTION_MEDIA_EJECT))) {
-
-                         Log.d(TAG, "ACTION_MEDIA_UNMOUNTED Intent received");
-                         if (mFmRecordingOn == true) {
-                             try {
-                                  stopRecord();
-                             } catch (Exception e) {
-                                  e.printStackTrace();
-                             }
-                         }
-                    }
-                }
-            };
-            IntentFilter iFilter = new IntentFilter();
-            iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
-            iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
-            iFilter.addDataScheme("file");
-            registerReceiver(mSdcardUnmountReceiver, iFilter);
-        }
-    }
 
     private static long getAvailableSpace() {
         String state = Environment.getExternalStorageState();
diff --git a/fmapp/res/values/arrays.xml b/fmapp/res/values/arrays.xml
index c453c6a..2fbe0d2 100644
--- a/fmapp/res/values/arrays.xml
+++ b/fmapp/res/values/arrays.xml
@@ -311,7 +311,7 @@
     <item>Netherlands (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
     <item>New Zealand (88.0MHz To 107.0MHz In 100 Khz Steps)</item>
     <item>Norway (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
-    <item>Poland (88.0MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Poland (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
     <item>Portugal (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
     <item>Russia (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
     <item>Singapore (88.0MHz To 108.0MHz In 100 Khz Steps)</item>
diff --git a/fmapp/src/com/codeaurora/fmradio/FMRadioService.java b/fmapp/src/com/codeaurora/fmradio/FMRadioService.java
index b3a2b42..3ca96e9 100644
--- a/fmapp/src/com/codeaurora/fmradio/FMRadioService.java
+++ b/fmapp/src/com/codeaurora/fmradio/FMRadioService.java
@@ -744,8 +744,10 @@
            //ACTION_FM=1 to AudioManager, the previous state of Speaker we set
            //need not be retained by the Audio Manager.
            if (isSpeakerEnabled()) {
-                   mSpeakerPhoneOn = true;
-                   AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+               mSpeakerPhoneOn = true;
+               AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+           } else {
+               AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
            }
            AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
                                      AudioSystem.DEVICE_STATE_AVAILABLE, "");
diff --git a/fmapp/src/com/codeaurora/fmradio/FmSharedPreferences.java b/fmapp/src/com/codeaurora/fmradio/FmSharedPreferences.java
index ac4ac2c..247969c 100644
--- a/fmapp/src/com/codeaurora/fmradio/FmSharedPreferences.java
+++ b/fmapp/src/com/codeaurora/fmradio/FmSharedPreferences.java
@@ -990,11 +990,11 @@
         }
         case REGIONAL_BAND_POLAND:
         {
-          /*POLAND : 87500 TO 108000 IN 50 KHZ STEPS*/
+          /*POLAND : 87500 TO 108000 IN 100 KHZ STEPS*/
           mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
-          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_100_KHZ);
           mFMConfiguration.setLowerLimit(87500);
-          mFrequencyBand_Stepsize = 50;
+          mFrequencyBand_Stepsize = 100;
           break;
         }
         case REGIONAL_BAND_PORTUGAL:
diff --git a/fmapp2/res/values/arrays.xml b/fmapp2/res/values/arrays.xml
index c453c6a..2fbe0d2 100644
--- a/fmapp2/res/values/arrays.xml
+++ b/fmapp2/res/values/arrays.xml
@@ -311,7 +311,7 @@
     <item>Netherlands (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
     <item>New Zealand (88.0MHz To 107.0MHz In 100 Khz Steps)</item>
     <item>Norway (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
-    <item>Poland (88.0MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Poland (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
     <item>Portugal (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
     <item>Russia (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
     <item>Singapore (88.0MHz To 108.0MHz In 100 Khz Steps)</item>
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index fb5147e..5dfe72d 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -741,8 +741,10 @@
            //ACTION_FM=1 to AudioManager, the previous state of Speaker we set
            //need not be retained by the Audio Manager.
            if (isSpeakerEnabled()) {
-                   mSpeakerPhoneOn = true;
-                   AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+               mSpeakerPhoneOn = true;
+               AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+           } else {
+               AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
            }
            AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
                                AudioSystem.DEVICE_STATE_AVAILABLE, "");
@@ -912,7 +914,7 @@
            boolean bTempSpeaker = mSpeakerPhoneOn; //need to restore SpeakerPhone
            boolean bTempMute = mMuted;// need to restore Mute status
            int bTempCall = mCallStatus;//need to restore call status
-           if (fmOff()) {
+           if (isFmOn() && fmOff()) {
                if((mServiceInUse) && (mCallbacks != null)) {
                    try {
                         mCallbacks.onDisabled();
@@ -1047,9 +1049,8 @@
                           stopFM();
                       }
                       if (mSpeakerPhoneOn) {
-                          mSpeakerPhoneOn = false;
                           if (isAnalogModeSupported())
-                              setAudioPath(true);
+                              setAudioPath(false);
                       }
                       mStoppedOnFocusLoss = true;
                       break;
diff --git a/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java b/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
index d44f06c..9835090 100644
--- a/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
+++ b/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
@@ -449,7 +449,6 @@
       mTunedFrequency = sp.getInt(PREF_LAST_TUNED_FREQUENCY, DEFAULT_NO_FREQUENCY);
       mRecordDuration = sp.getInt(LAST_RECORD_DURATION, RECORD_DUR_INDEX_0_VAL);
       mAFAutoSwitch = sp.getBoolean(LAST_AF_JUMP_VALUE, true);
-      mAudioOutputMode = sp.getBoolean(AUDIO_OUTPUT_MODE, true);
      /* Reset the Lists before reading the preferences */
       mListOfPlists.clear();
 
@@ -991,11 +990,11 @@
         }
         case REGIONAL_BAND_POLAND:
         {
-          /*POLAND : 87500 TO 108000 IN 50 KHZ STEPS*/
+          /*POLAND : 87500 TO 108000 IN 100 KHZ STEPS*/
           mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
-          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_100_KHZ);
           mFMConfiguration.setLowerLimit(87500);
-          mFrequencyBand_Stepsize = 50;
+          mFrequencyBand_Stepsize = 100;
           break;
         }
         case REGIONAL_BAND_PORTUGAL:
