diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index fbd120d..710a16e 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -398,7 +398,7 @@
                     if(lynq_apn_table[apnId].hasTimeout==1)
                     {
                         LYERRLOG("apn:%s has time out,deacive this apn",lynq_apn_table[apnId].apn);
-                        if (NULL != lynq_apn_table[apnId].apn && NULL != NULL != lynq_apn_table[apnId].apnType)
+                        if (NULL != lynq_apn_table[apnId].apn && NULL != lynq_apn_table[apnId].apnType && strlen(lynq_apn_table[apnId].apn)>0)
                         {
                             LYERRLOG("deactive this time out APN");
                             lynq_deactive_data_call(&apnId);
@@ -443,10 +443,10 @@
                 {
                     lynq_data_call_change_id = apnId;
                     bzero(lynq_apn_table[apnId].apnType,LYNQ_APN_TYPE_MAX_LEN);//async clean
+                    pthread_mutex_lock(&s_lynq_urc_vector_mutex);
+                    s_data_urc_wait_list.push_back(apnId);
+                    pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
                 }
-                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();
                 LYDBGLOG("data call state:%d",lynq_data_call);
                 if(lynq_data_call==1)
@@ -918,6 +918,11 @@
         LYERRLOG("handle is NULL");
         return LYNQ_E_NULL_ANONALY;
     }
+    if (*handle<0 && handle>8)
+    {
+        LYERRLOG("handle value error");
+    }
+    LYINFLOG("incoming handle value: %d",*handle);
     memset(interDataCallList,0,sizeof(interDataCallList));
     error = getDataCallLists(interDataCallList,&number);
     if(error == 0)
@@ -951,11 +956,12 @@
 
     pthread_mutex_lock(&s_lynq_urc_vector_mutex);
     iter = s_data_urc_wait_list.begin();
-    handle = (*iter);
+    *handle = s_data_urc_wait_list.front();
+
     s_data_urc_wait_list.erase(iter);
     pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
     
-    LYINFLOG("lynq data call id:%d",lynq_data_call_change_id);
+    LYINFLOG("lynq data call id:%d",*handle);
     return 0;
 }
 /*Warren add for T800 platform 2021/11/19 end*/
