diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 2894281..7fa02d5 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -381,6 +381,10 @@
     /* split scan if any one of the following:
      * - STA session is connected and the scan is not a P2P search
      * - any P2P session is connected
+     * - STA+SAP. In STA+SAP concurrency, scan requests received on
+     *   STA interface when not in connected state are not split.
+     *   This can result in large time gap between successive beacons
+     *   sent by SAP.
      * Do not split scans if no concurrent infra connections are 
      * active and if the scan is a BG scan triggered by LFR (OR)
      * any scan if LFR is in the middle of a BG scan. Splitting
@@ -388,7 +392,11 @@
      * candidates and resulting in disconnects.
      */
 
-    if(csrIsStaSessionConnected(pMac) &&
+    if (csrIsInfraApStarted(pMac))
+    {
+      nNumChanCombinedConc = 1;
+    }
+    else if(csrIsStaSessionConnected(pMac) &&
        !csrIsP2pSessionConnected(pMac))
     {
       nNumChanCombinedConc = pMac->roam.configParam.nNumStaChanCombinedConc;
@@ -7278,6 +7286,10 @@
          * any one of the following:
          * - STA session is connected and the scan is not a P2P search
          * - any P2P session is connected
+         * - STA+SAP. In STA+SAP concurrency, scan requests received on
+         *   STA interface when not in connected state are not split.
+         *   This can result in large time gap between successive beacons
+         *   sent by SAP.
          * Do not split scans if no concurrent infra connections are 
          * active and if the scan is a BG scan triggered by LFR (OR)
          * any scan if LFR is in the middle of a BG scan. Splitting
@@ -7285,7 +7297,11 @@
          * candidates and resulting in disconnects.
          */
 
-        if((csrIsStaSessionConnected(pMac) &&
+        if (csrIsInfraApStarted(pMac))
+        {
+            nNumChanCombinedConc = 1;
+        }
+        else if((csrIsStaSessionConnected(pMac) &&
            !csrIsP2pSessionConnected(pMac)))
         {
            nNumChanCombinedConc = pMac->roam.configParam.nNumStaChanCombinedConc;
