diff --git a/nci/jni/NativeNfcManager.cpp b/nci/jni/NativeNfcManager.cpp
index 31a858a..b6bbe27 100644
--- a/nci/jni/NativeNfcManager.cpp
+++ b/nci/jni/NativeNfcManager.cpp
@@ -1666,7 +1666,9 @@
   pn544InteropAbortNow();
   RoutingManager::getInstance().onNfccShutdown();
   PowerSwitch::getInstance().initialize(PowerSwitch::UNKNOWN_LEVEL);
-
+#if (NXP_EXTNS == TRUE)
+  SecureElement::getInstance().releasePendingTransceive();
+#endif
   if (sIsNfaEnabled) {
     SyncEventGuard guard(sNfaDisableEvent);
     EXTNS_Close();
diff --git a/nci/jni/NativeSecureElement.cpp b/nci/jni/NativeSecureElement.cpp
index a8a746a..e98f0a6 100644
--- a/nci/jni/NativeSecureElement.cpp
+++ b/nci/jni/NativeSecureElement.cpp
@@ -118,6 +118,8 @@
 
     if(!se.mIsWiredModeOpen)
          return false;
+     /* release any pending transceive wait */
+    se.releasePendingTransceive();
 
     status = se.setNfccPwrConfig(se.POWER_ALWAYS_ON);
     if(status != NFA_STATUS_OK)
@@ -130,12 +132,12 @@
         if(status == NFA_STATUS_OK)
             stat = true;
     }
+    se.mIsWiredModeOpen = false;
 
     /* if nothing is active after this, then tell the controller to power down */
     if (! PowerSwitch::getInstance ().setModeOff (PowerSwitch::SE_CONNECTED))
         PowerSwitch::getInstance ().setLevel (PowerSwitch::LOW_POWER);
     LOG(INFO) << StringPrintf("%s: exit", __func__);
-
     return stat ? JNI_TRUE : JNI_FALSE;
 }
 /*******************************************************************************
diff --git a/nci/jni/SecureElement.cpp b/nci/jni/SecureElement.cpp
index ff79f0b..9cfefc3 100644
--- a/nci/jni/SecureElement.cpp
+++ b/nci/jni/SecureElement.cpp
@@ -1537,3 +1537,24 @@
   mIsInit     = false;
   mNativeData = NULL;
 }
+
+/*******************************************************************************
+**
+** Function:        releasePendingTransceive
+**
+** Description:     release any pending transceive wait.
+**
+** Returns:         None.
+**
+*******************************************************************************/
+void SecureElement::releasePendingTransceive()
+{
+    static const char fn [] = "SecureElement::releasePendingTransceive";
+    LOG(INFO) << StringPrintf("%s: Entered", fn);
+    if(mIsWiredModeOpen)
+    {
+        SyncEventGuard guard (mTransceiveEvent);
+        mTransceiveEvent.notifyOne();
+    }
+    LOG(INFO) << StringPrintf("%s: Exit", fn);
+}
\ No newline at end of file
diff --git a/nci/jni/SecureElement.h b/nci/jni/SecureElement.h
index f694300..78859e7 100644
--- a/nci/jni/SecureElement.h
+++ b/nci/jni/SecureElement.h
@@ -484,4 +484,14 @@
 **
 *******************************************************************************/
 void finalize();
+/*******************************************************************************
+**
+** Function:        releasePendingTransceive
+**
+** Description:     release any pending transceive wait.
+**
+** Returns:         None.
+**
+*******************************************************************************/
+void releasePendingTransceive();
 };
