diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f2ff9b2..f12d826 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -95,6 +95,7 @@
 import com.android.internal.telephony.RIL;
 import com.android.internal.telephony.RILConstants;
 import com.android.internal.telephony.SubscriptionController;
+import com.android.internal.telephony.TelephonyProperties;
 import com.android.internal.telephony.euicc.EuiccConnector;
 import com.android.internal.telephony.uicc.IccIoResult;
 import com.android.internal.telephony.uicc.IccUtils;
@@ -1656,6 +1657,24 @@
     }
 
     @Override
+    public String getNetworkCountryIsoForPhone(int phoneId) {
+        // Reporting the correct network country is ambiguous when IWLAN could conflict with
+        // registered cell info, so return a NULL country instead.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            final int subId = mSubscriptionController.getSubIdUsingPhoneId(phoneId);
+            if (TelephonyManager.NETWORK_TYPE_IWLAN
+                    == getVoiceNetworkTypeForSubscriber(subId, mApp.getPackageName())) {
+                return "";
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+        return TelephonyManager.getTelephonyProperty(
+                phoneId, TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY, "");
+    }
+
+    @Override
     public void enableLocationUpdates() {
         enableLocationUpdatesForSubscriber(getDefaultSubscription());
     }
