memcpy(&smp->preq[1], req, sizeof(*req));
        skb_pull(skb, sizeof(*req));
 
-       sec_level = authreq_to_seclevel(auth);
+       if (conn->hcon->io_capability == 0x03)
+               sec_level = BT_SECURITY_MEDIUM;
+       else
+               sec_level = authreq_to_seclevel(auth);
+
        if (sec_level > conn->hcon->pending_sec_level)
                conn->hcon->pending_sec_level = sec_level;
 
 
        auth = rp->auth_req & AUTH_REQ_MASK;
 
-       sec_level = authreq_to_seclevel(auth);
+       if (hcon->io_capability == 0x03)
+               sec_level = BT_SECURITY_MEDIUM;
+       else
+               sec_level = authreq_to_seclevel(auth);
+
        if (smp_sufficient_security(hcon, sec_level))
                return 0;