--- /var/folders/R3/R3Cxh0URFYyFxHRiY-y1+U+++TI/-Tmp-/dQhxzTeOLdFU/BASE_imce.module	2011-09-07 12:50:43.000000000 -0600
+++ /var/folders/R3/R3Cxh0URFYyFxHRiY-y1+U+++TI/-Tmp-/dQhxzTeOLdFU/STAGED_imce.module	2011-09-07 12:50:43.000000000 -0600
@@ -149,8 +149,10 @@
   $roles_profiles = variable_get('imce_roles_profiles', array());
   //store assigned configuration
   $conf = array();
+  if(empty($scheme)) $scheme = $default_scheme;
+  $key = $scheme . '_pid';
   foreach ($roles_profiles as $rid => $role) {
-    if (isset($user->roles[$rid])) {
+    if (isset($user->roles[$rid]) && $role[$key]) {
       $conf = $role;
       break;
     }
@@ -170,13 +172,6 @@
     return FALSE;
   }
 
-  //no scheme specified. check the default
-  $scheme = $default_scheme;
-  $key = $scheme . '_pid';
-  if (isset($conf[$key]) && isset($profiles[$conf[$key]]) && isset($swrappers[$scheme])) {
-    return $profiles[$conf[$key]] + array('scheme' => $scheme);
-  }
-
   //check if any of the schemes has a profile assigned.
   foreach ($conf as $key => $pid) {
     if (substr($key, -4) == '_pid' && isset($profiles[$pid])) {
@@ -211,7 +206,6 @@
           return TRUE;
         }
       }
-      break;
     }
   }
 
@@ -234,4 +228,4 @@
  */
 function imce_reg_dir($dirname) {
   return $dirname == '.' || (is_string($dirname) && $dirname != '' && !preg_match('@(^\s)|(^/)|(^\./)|(\s$)|(/$)|(/\.$)|(\.\.)|(//)|(\\\\)|(/\./)@', $dirname));
-}
\ No newline at end of file
+}
