diff --git a/src/com/android/stk/StkAppService.java b/src/com/android/stk/StkAppService.java
index 1007a4a..9dcd25b 100644
--- a/src/com/android/stk/StkAppService.java
+++ b/src/com/android/stk/StkAppService.java
@@ -144,20 +144,11 @@
     @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 @@
         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
