diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index 042c75e..d8c5a53 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -1669,6 +1669,8 @@
 
         public static final String NUMERIC = "numeric";
 
+        public static final String AUTH_TYPE = "authtype";
+
         public static final String TYPE = "type";
 
         public static final String CURRENT = "current";
diff --git a/telephony/java/com/android/internal/telephony/gsm/ApnSetting.java b/telephony/java/com/android/internal/telephony/gsm/ApnSetting.java
index dc6f92d..8d807fd 100644
--- a/telephony/java/com/android/internal/telephony/gsm/ApnSetting.java
+++ b/telephony/java/com/android/internal/telephony/gsm/ApnSetting.java
@@ -31,6 +31,7 @@
     String mmsPort;
     String user;
     String password;
+    int authType;
     String[] types;
     int id;
     String numeric;
@@ -38,7 +39,7 @@
 
     ApnSetting(int id, String numeric, String carrier, String apn, String proxy, String port,
             String mmsc, String mmsProxy, String mmsPort,
-            String user, String password, String[] types) {
+            String user, String password, int authType, String[] types) {
         this.id = id;
         this.numeric = numeric;
         this.carrier = carrier;
@@ -50,6 +51,7 @@
         this.mmsPort = mmsPort;
         this.user = user;
         this.password = password;
+        this.authType = authType;
         this.types = types;
     }
 
@@ -63,7 +65,8 @@
         .append(", ").append(mmsc)
         .append(", ").append(mmsProxy)
         .append(", ").append(mmsPort)
-        .append(", ").append(port);
+        .append(", ").append(port)
+        .append(", ").append(authType);
         for (String t : types) {
             sb.append(", ").append(t);
         }
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index ffd6dd3..d014a7e 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -556,6 +556,7 @@
                         cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.MMSPORT)),
                         cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.USER)),
                         cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.PASSWORD)),
+                        cursor.getInt(cursor.getColumnIndexOrThrow(Telephony.Carriers.AUTH_TYPE)),
                         types);
                 result.add(apn);
             } while (cursor.moveToNext());
diff --git a/telephony/java/com/android/internal/telephony/gsm/PdpConnection.java b/telephony/java/com/android/internal/telephony/gsm/PdpConnection.java
index 224419e..cb85002 100644
--- a/telephony/java/com/android/internal/telephony/gsm/PdpConnection.java
+++ b/telephony/java/com/android/internal/telephony/gsm/PdpConnection.java
@@ -84,9 +84,11 @@
         lastFailCause = FailCause.NONE;
         receivedDisconnectReq = false;
 
-        int authType = (apn.user != null) ? RILConstants.SETUP_DATA_AUTH_PAP_CHAP :
-            RILConstants.SETUP_DATA_AUTH_NONE;
-
+        int authType = apn.authType;
+        if (authType == -1) {
+            authType = (apn.user != null) ? RILConstants.SETUP_DATA_AUTH_PAP_CHAP :
+                RILConstants.SETUP_DATA_AUTH_NONE;
+        }
         phone.mCM.setupDataCall(Integer.toString(RILConstants.SETUP_DATA_TECH_GSM),
                 Integer.toString(RILConstants.DATA_PROFILE_DEFAULT), apn.apn, apn.user,
                 apn.password, Integer.toString(authType),
