diff --git a/src/com/android/phone/ImsProvisioningController.java b/src/com/android/phone/ImsProvisioningController.java
index acedf22..d78e565 100644
--- a/src/com/android/phone/ImsProvisioningController.java
+++ b/src/com/android/phone/ImsProvisioningController.java
@@ -992,9 +992,6 @@
             try {
                 // set key and value to vendor ImsService for MmTel
                 mMmTelFeatureListenersSlotMap.get(slotId).setProvisioningValue(key, value);
-
-                // notify provisioning status changed to ImsManager
-                updateImsServiceConfig(subId);
             } catch (NullPointerException e) {
                 loge("can not access MmTelFeatureListener with capability " + capability);
             }
@@ -1114,11 +1111,6 @@
         // update and notify provisioning status changed capability and tech from key
         updateCapabilityTechFromKey(subId, key, value);
 
-        if (key != KEY_EAB_PROVISIONING_STATUS) {
-            // notify provisioning status changed to ImsManager
-            updateImsServiceConfig(subId);
-        }
-
         return retVal;
     }
 
@@ -1458,17 +1450,6 @@
         return isChanged;
     }
 
-    private void updateImsServiceConfig(int subId) {
-        try {
-            ImsManager imsManager = mMmTelFeatureListenersSlotMap.get(getSlotId(subId))
-                    .getImsManager();
-            imsManager.updateImsServiceConfig();
-            log("updateImsServiceConfig");
-        } catch (NullPointerException e) {
-            loge("updateImsServiceConfig : ImsService not ready");
-        }
-    }
-
     protected boolean isValidSubId(int subId) {
         int slotId = getSlotId(subId);
         if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX || slotId >= mNumSlot) {
