--- profile2.module
+++ (clipboard)
@@ -711,6 +711,12 @@
   if ($entity_type == 'profile2' && $op == 'view' && !user_access('administer profiles', $account)) {
     // For profiles, deny general view access.
     if (!isset($profile)) {
+      // If field is attached to only one bundle, assume profile type.
+      if (count($field['bundles']['profile2']) == 1) {
+        if (user_access("view any {$field['bundles']['profile2'][0]} profile", $account)) {
+          return TRUE;
+        }
+      }
       return FALSE;
     }
     // Also deny view access, if someone else views a private field.
