diff --git a/src/com/android/nfc/NativeNfcTag.java b/src/com/android/nfc/NativeNfcTag.java
index 002791e..1d05f25 100755
--- a/src/com/android/nfc/NativeNfcTag.java
+++ b/src/com/android/nfc/NativeNfcTag.java
@@ -151,9 +151,15 @@
                                 (technology == TagTechnology.NDEF_FORMATABLE)) {
                             isSuccess = true;
                         } else {
-                            // Don't allow to connect at a different level
-                            // on the same handle, not supported by libnfc!
-                            isSuccess = false;
+                            if ((technology != TagTechnology.ISO_DEP) &&
+                                (hasTechOnHandle(TagTechnology.ISO_DEP, mTechHandles[i]))) {
+                                // Don't allow to connect a -4 tag at a different level
+                                // than IsoDep, as this is not supported by
+                                // libNFC.
+                                isSuccess = false;
+                            } else {
+                                isSuccess = true;
+                            }
                         }
                     }
                     if (isSuccess) {
@@ -454,6 +460,18 @@
       return hasTech;
     }
 
+    private boolean hasTechOnHandle(int tech, int handle) {
+      boolean hasTech = false;
+      for (int i = 0; i < mTechList.length; i++) {
+          if (mTechList[i] == tech && mTechHandles[i] == handle) {
+              hasTech = true;
+              break;
+          }
+      }
+      return hasTech;
+
+    }
+
     public Bundle[] getTechExtras() {
         synchronized (this) {
             if (mTechExtras != null) return mTechExtras;
