--- ../imce.1/imce.module	2008-02-12 16:46:19.000000000 -0700
+++ imce.module	2008-02-12 17:04:06.000000000 -0700
@@ -25,7 +25,7 @@ function imce_footer() {
  * Implementation of hook_perm().
  */
 function imce_perm() {
-  return array('access imce', 'administer imce');
+  return array('access imce', 'manage imce images', 'administer imce');
 }
 
 /**
@@ -63,12 +63,13 @@ function imce_menu($may_cache) {
   elseif (arg(0)=='user' && ($uid=arg(1)) && is_numeric($uid)) {
     if ($user->uid == $uid) {
       $access = user_access('access imce');
+	  $manage = user_access('manage imce');
       $acc = $user;
     }
-    elseif (user_access('administer imce') && $uid!=1 && $acc=user_load(array('uid'=>$uid))) {
+    elseif ((user_access('administer imce') || user_access('manage imce')) && $uid!=1 && $acc=user_load(array('uid'=>$uid))) {
       $access = array_intersect(user_roles(0, 'access imce'), $acc->roles);
     }
-    if ($access) {
+    if ($access || $manage) {
       $items[] = array('path' => 'user/'.$uid.'/imce',
         'title' => t('Personal files'),
         'access' => TRUE,
@@ -98,7 +99,7 @@ function imce_menu($may_cache) {
         }
       }
     }
-    elseif (arg(1)=='login' && user_access('administer imce') && is_numeric($uid=arg(2)) && $uid!=1 && $user->uid!=$uid && ($acc=user_load(array('uid' => $uid))) && array_intersect(user_roles(0, 'access imce'), $acc->roles)) {
+    elseif (arg(1)=='login' && (user_access('administer imce') || user_access('manage imce') ) && is_numeric($uid=arg(2)) && $uid!=1 && $user->uid!=$uid && ($acc=user_load(array('uid' => $uid))) && array_intersect(user_roles(0, 'access imce'), $acc->roles)) {
       $_SESSION['imceuser'] = array('uid'=>$acc->uid, 'roles'=>$acc->roles, 'name'=>($acc->name ? $acc->name : t('Anonymous')), 'ownperm' =>arg(3)=='own');
       unset($_SESSION['imcedir']);
     }
@@ -471,6 +472,7 @@ function imce_settings_user() {
   }
   $set = $set ? $set : imce_settings_default();
   $set['uid'] = $user->uid;
+  //print_r($set);
   $set['root'] = imce_get_directory($set);
   if ($_SESSION['imceuser']) {
     $settings = variable_get('imce_settings_roles', array());
@@ -487,7 +489,11 @@ function imce_settings_user() {
     }
     $set['root'] = imce_get_directory($userset);
   }
-  $set['dir'] = ($set['subnav'] && $_SESSION['imcedir'] && file_check_location(file_directory_path() .'/'. $_SESSION['imcedir'], $set['root'])) ? file_directory_path() .'/'. $_SESSION['imcedir'] : $set['root'];
+  //$set['dir'] = ($set['subnav'] && $_SESSION['imcedir'] && file_check_location(file_directory_path() .'/'. $_SESSION['imcedir'], $set['root'])) ? file_directory_path() .'/'. $_SESSION['imcedir'] : $set['root'];
+  $set['dir'] = ($_SESSION['imcedir'] && file_check_location(file_directory_path() .'/'. $_SESSION['imcedir'], $set['root'])) 
+  					? file_directory_path() .'/'. $_SESSION['imcedir'] 
+					: $set['root'];
+  //print_r($set);
   return $set;
 }
 
