diff --git a/src/com/android/nfc/NfcDispatcher.java b/src/com/android/nfc/NfcDispatcher.java
index b10ff36..531d322 100644
--- a/src/com/android/nfc/NfcDispatcher.java
+++ b/src/com/android/nfc/NfcDispatcher.java
@@ -259,6 +259,17 @@
             }
         }
 
+        if (DBG) Log.d(TAG, "dispatch tag: " + tag.toString() + " message: " + message);
+
+        DispatchInfo dispatch = new DispatchInfo(mContext, tag, message);
+
+        resumeAppSwitches();
+
+        if (tryOverrides(dispatch, tag, message, overrideIntent, overrideFilters,
+                overrideTechLists)) {
+            return screenUnlocked ? DISPATCH_UNLOCK : DISPATCH_SUCCESS;
+        }
+
         if (provisioningOnly) {
             if (message == null) {
                 // We only allow NDEF-message dispatch in provisioning mode
@@ -273,17 +284,6 @@
             }
         }
 
-        if (DBG) Log.d(TAG, "dispatch tag: " + tag.toString() + " message: " + message);
-
-        DispatchInfo dispatch = new DispatchInfo(mContext, tag, message);
-
-        resumeAppSwitches();
-
-        if (tryOverrides(dispatch, tag, message, overrideIntent, overrideFilters,
-                overrideTechLists)) {
-            return screenUnlocked ? DISPATCH_UNLOCK : DISPATCH_SUCCESS;
-        }
-
         if (tryPeripheralHandover(message)) {
             if (DBG) Log.i(TAG, "matched BT HANDOVER");
             return screenUnlocked ? DISPATCH_UNLOCK : DISPATCH_SUCCESS;
