diff --git a/CORE/TL/src/wlan_qct_tl.c b/CORE/TL/src/wlan_qct_tl.c
index 4638b44..8e9d05d 100644
--- a/CORE/TL/src/wlan_qct_tl.c
+++ b/CORE/TL/src/wlan_qct_tl.c
@@ -6881,12 +6881,12 @@
    ------------------------------------------------------------------------*/
 #ifdef FEATURE_WLAN_TDLS
   if ((WLAN_STA_SOFTAP != pClientSTA->wSTADesc.wSTAType) &&
-      (!vos_concurrent_sessions_running()) &&
+      !(vos_concurrent_open_sessions_running()) &&
       !pTLCb->ucTdlsPeerCount)
   {
 #else
   if ((WLAN_STA_SOFTAP != pClientSTA->wSTADesc.wSTAType) &&
-      (!vos_concurrent_sessions_running()))
+      !(vos_concurrent_open_sessions_running()))
   {
 #endif
       ucAC = pClientSTA->ucCurrentAC;
@@ -6942,28 +6942,6 @@
   /*------------------------------------------------------------------------
     Fetch tx packet from HDD
    ------------------------------------------------------------------------*/
-//LTI
-#if 0 
-  if (WLAN_STA_SOFTAP != pTLCb->atlSTAClients[ucSTAId].wSTADesc.wSTAType && 
-     (!vos_concurrent_sessions_running()))
-  {
-    // don't set 0. 
-    //vos_atomic_set_U8( &pTLCb->atlSTAClients[ucSTAId].ucPktPending, 0);
-    vosStatus = pTLCb->atlSTAClients[ucSTAId].pfnSTAFetchPkt( pvosGCtx,
-                                  &ucSTAId,
-                                  pTLCb->atlSTAClients[ucSTAId].ucCurrentAC,
-                                  &vosDataBuff, &tlMetaInfo );
-  }
-  else
-  {
-    //softap case
-    WLANTL_ACEnumType ucAC = pTLCb->uCurServedAC;
-    vosStatus = pTLCb->atlSTAClients[ucSTAId].pfnSTAFetchPkt( pvosGCtx, 
-                               &ucSTAId,
-                               ucAC,
-                                                &vosDataBuff, &tlMetaInfo );
-  }
-#endif
 
   vosStatus = pClientSTA->pfnSTAFetchPkt( pvosGCtx,
                                &ucSTAId,
@@ -7255,12 +7233,12 @@
    ------------------------------------------------------------------------*/
 #ifdef FEATURE_WLAN_TDLS
   if ((WLAN_STA_SOFTAP != pStaClient->wSTADesc.wSTAType) &&
-      (!vos_concurrent_sessions_running()) &&
+      (!vos_concurrent_open_sessions_running()) &&
       !pTLCb->ucTdlsPeerCount)
   {
 #else
   if ((WLAN_STA_SOFTAP != pStaClient->wSTADesc.wSTAType) &&
-      (!vos_concurrent_sessions_running()))
+      (!vos_concurrent_open_sessions_running()))
   {
 #endif
   ucAC = pStaClient->ucCurrentAC;
@@ -10470,9 +10448,11 @@
   }
 
 #ifdef FEATURE_WLAN_TDLS
-  if ((eSYSTEM_AP_ROLE == systemRole) || (vos_concurrent_sessions_running()) || pTLCb->ucTdlsPeerCount)
+  if ((eSYSTEM_AP_ROLE == systemRole) ||
+      (vos_concurrent_open_sessions_running()) || pTLCb->ucTdlsPeerCount)
 #else
-  if ((eSYSTEM_AP_ROLE == systemRole) || (vos_concurrent_sessions_running()))
+  if ((eSYSTEM_AP_ROLE == systemRole) ||
+      (vos_concurrent_open_sessions_running()))
 #endif
   {
     return WLAN_TLAPGetNextTxIds(pvosGCtx,pucSTAId);
