diff --git a/ril/Android.mk b/ril/Android.mk
index de33c11..6ed67a3 100644
--- a/ril/Android.mk
+++ b/ril/Android.mk
@@ -20,7 +20,7 @@
 
 # libril
 ifeq ($(BOARD_PROVIDES_LIBRIL),true)
-ifneq ($(filter xmm6260 xmm6262 xmm6360 xmm7260 m7450 ss333,$(BOARD_MODEM_TYPE)),)
+ifneq ($(filter xmm6260 xmm6262 xmm6360 xmm7260 m7450 ss333 mdm9x35,$(BOARD_MODEM_TYPE)),)
 include $(RIL_PATH)/libril/Android.mk
 endif
 endif
diff --git a/ril/libril/Android.mk b/ril/libril/Android.mk
index f3d5545..ad64029 100644
--- a/ril/libril/Android.mk
+++ b/ril/libril/Android.mk
@@ -34,8 +34,8 @@
 ifeq ($(BOARD_MODEM_TYPE),m7450)
 LOCAL_CFLAGS := -DMODEM_TYPE_M7450
 endif
-ifeq ($(BOARD_MODEM_TYPE),ss333)
-LOCAL_CFLAGS := -DMODEM_TYPE_SS333
+ifeq ($(filter ss333 mdm9x35,$(BOARD_MODEM_TYPE)),)
+LOCAL_CFLAGS := -DSAMSUNG_NEXT_GEN_MODEM
 endif
 
 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADER)/librilutils
diff --git a/ril/libril/ril.cpp b/ril/libril/ril.cpp
index beae829..f1fecc8 100644
--- a/ril/libril/ril.cpp
+++ b/ril/libril/ril.cpp
@@ -789,7 +789,8 @@
     int32_t sizeOfDial;
     int32_t t;
     int32_t uusPresent;
-#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) || defined(MODEM_TYPE_SS333)
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) \
+  || defined(SAMSUNG_NEXT_GEN_MODEM)
     char *csv;
 #endif
     status_t status;
@@ -806,7 +807,8 @@
         goto invalid;
     }
 
-#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) || defined(MODEM_TYPE_SS333)
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) \
+  || defined(SAMSUNG_NEXT_GEN_MODEM)
     /* CallDetails.call_type */
     status = p.readInt32(&t);
     if (status != NO_ERROR) {
@@ -837,7 +839,7 @@
 
         if (uusPresent == 0) {
 #if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260) \
- || defined(MODEM_TYPE_M7450) || defined(MODEM_TYPE_SS333)
+ || defined(MODEM_TYPE_M7450) || defined(SAMSUNG_NEXT_GEN_MODEM)
             dial.uusInfo = NULL;
 #elif defined(MODEM_TYPE_XMM6260)
             /* Samsung hack */
@@ -2387,8 +2389,8 @@
         p.writeInt32(p_cur->als);
         p.writeInt32(p_cur->isVoice);
 
-#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) || defined(MODEM_TYPE_SS333)
-#ifndef MODEM_TYPE_SS333
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) || defined(SAMSUNG_NEXT_GEN_MODEM)
+#ifndef SAMSUNG_NEXT_GEN_MODEM
         p.writeInt32(p_cur->isVideo);
 #endif
 
@@ -2426,7 +2428,7 @@
             p_cur->als,
             (p_cur->isVoice)?"voc":"nonvoc",
             (p_cur->isVoicePrivacy)?"evp":"noevp");
-#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) || defined(MODEM_TYPE_SS333)
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450) || defined(SAMSUNG_NEXT_GEN_MODEM)
         appendPrintBuf("%s,%s,",
             printBuf,
             (p_cur->isVideo) ? "vid" : "novid");
@@ -3030,7 +3032,7 @@
         p.writeInt32(p_cur->GW_SignalStrength.bitErrorRate);
 
 #if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260) \
- || defined(MODEM_TYPE_M7450) || defined(MODEM_TYPE_SS333)
+ || defined(MODEM_TYPE_M7450) || defined(SAMSUNG_NEXT_GEN_MODEM)
         cdmaDbm = p_cur->CDMA_SignalStrength.dbm & 0xFF;
         if (cdmaDbm < 0) {
             cdmaDbm = 99;
@@ -3044,7 +3046,7 @@
         p.writeInt32(p_cur->CDMA_SignalStrength.ecio);
 
 #if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260) \
- || defined(MODEM_TYPE_M7450) || defined(MODEM_TYPE_SS333)
+ || defined(MODEM_TYPE_M7450) || defined(SAMSUNG_NEXT_GEN_MODEM)
         evdoDbm = p_cur->EVDO_SignalStrength.dbm & 0xFF;
         if (evdoDbm < 0) {
             evdoDbm = 99;
