diff --git a/src/com/android/stk/StkAppService.java b/src/com/android/stk/StkAppService.java
index 1007a4a55821aa3d8935234fabbfc6ef2dc6d101..9dcd25bed7fb661ba58a73ec2a6cdfe839fb547d 100644
--- a/src/com/android/stk/StkAppService.java
+++ b/src/com/android/stk/StkAppService.java
@@ -144,20 +144,11 @@ public class StkAppService extends Service implements Runnable {
     @Override
     public void onCreate() {
         // Initialize members
+        // This can return null if StkService is not yet instantiated, but it's ok
+        // If this is null we will do getInstance before we need to use this
         mStkService = com.android.internal.telephony.cat.CatService
                 .getInstance();
 
-        // NOTE mStkService is a singleton and continues to exist even if the GSMPhone is disposed
-        //   after the radio technology change from GSM to CDMA so the PHONE_TYPE_CDMA check is
-        //   needed. In case of switching back from CDMA to GSM the GSMPhone constructor updates
-        //   the instance. (TODO: test).
-        if ((mStkService == null)
-                && (TelephonyManager.getDefault().getPhoneType()
-                                != TelephonyManager.PHONE_TYPE_CDMA)) {
-            CatLog.d(this, " Unable to get Service handle");
-            return;
-        }
-
         mCmdsQ = new LinkedList<DelayedCmd>();
         Thread serviceThread = new Thread(null, this, "Stk App Service");
         serviceThread.start();
@@ -488,6 +479,15 @@ public class StkAppService extends Service implements Runnable {
         if (mCurrentCmd == null) {
             return;
         }
+        if (mStkService == null) {
+            mStkService = com.android.internal.telephony.cat.CatService.getInstance();
+            if (mStkService == null) {
+                // This should never happen (we should be responding only to a message
+                // that arrived from StkService). It has to exist by this time
+                throw new RuntimeException("mStkService is null when we need to send response");
+            }
+        }
+
         CatResponseMessage resMsg = new CatResponseMessage(mCurrentCmd);
 
         // set result code