diff --git a/LYNQ_PUBLIC/common_src/lib/liblynq-data/lynq_data.cpp b/LYNQ_PUBLIC/common_src/lib/liblynq-data/lynq_data.cpp
index b8865ef..06913d4 100755
--- a/LYNQ_PUBLIC/common_src/lib/liblynq-data/lynq_data.cpp
+++ b/LYNQ_PUBLIC/common_src/lib/liblynq-data/lynq_data.cpp
@@ -1071,6 +1071,15 @@
     return error;
 }
 
+void deactiveAfterTimeout(int apnId)
+{
+    LYDBGLOG("%s:apn id:%d",__FUNCTION__,apnId);
+    cleanDeactApn(apnId);
+    pthread_mutex_lock(&s_lynq_urc_vector_mutex);
+    s_data_urc_wait_list.push_back(apnId);
+    pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
+    sendSignalPdnChange();
+}
 int lynq_deactive_data_call(int *handle)
 {
     Parcel *p = NULL;
@@ -1141,6 +1150,7 @@
         {
             error = LYNQ_E_TIME_OUT;
             LYERRLOG("[lynq_deactive_data_call] timeout:wait data Call state fail!!!");
+            deactiveAfterTimeout(lynq_data_call_id);
             printf_apn_table_debug(__FUNCTION__,__LINE__);
         }
     }
diff --git a/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp b/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
index 13a2318..414fcbf 100755
--- a/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
+++ b/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
@@ -1082,7 +1082,7 @@
         return LYNQ_E_CONFLICT;
     }
     LYDBGLOG("start get urc info");
-    if(handle != RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED &&handle != RIL_UNSOL_SIGNAL_STRENGTH)
+    if(is_support_urc(handle)==false)
     {
         LYINFLOG("invalid handle!!!");
         return LYNQ_E_PARAMETER_ANONALY;
@@ -1094,14 +1094,7 @@
         return LYNQ_E_PARAMETER_ANONALY;
     }
     switch(handle)
-    {
-        case RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED: //1002
-        {
-            LYDBGLOG("get state update to VOICE");
-            *slot_id = s_module_urc_slot_id;
-            LYINFLOG("slot_id = %d",s_module_urc_slot_id);
-            break;
-        }
+    {        
         case RIL_UNSOL_SIGNAL_STRENGTH: //1009
         {
             LYDBGLOG("get state update to signal info");
@@ -1123,7 +1116,12 @@
             solSigStren->csiSinr = s_network_urc_solSigStren.csiSinr;
             break;
         }
-    }
+        default:
+        {
+            *slot_id = s_module_urc_slot_id;
+            LYINFLOG("slot_id = %d",s_module_urc_slot_id);
+		}
+    }        
     return RESULT_OK;   
 }
 
