diff -Naur /var/www/drupal/sites/default/modules/webfm/js/webfm.js /home/xl666/Escritorio/webfm/js/webfm.js
--- /var/www/drupal/sites/default/modules/webfm/js/webfm.js	2010-02-24 19:13:12.133254897 -0600
+++ /home/xl666/Escritorio/webfm/js/webfm.js	2009-08-19 10:30:45.000000000 -0500
@@ -383,12 +383,12 @@
   //global to allow external functions to push new menu elements into the menu array
   Webfm.menuHT = new Webfm.hht();
   try {
-    Webfm.menuHT.put('root', new Webfm.menuElement(Webfm.menu_msg["mkdir"], Webfm.menuMkdir, Webfm.usCreateDir)); //xl666 modification
+    Webfm.menuHT.put('root', new Webfm.menuElement(Webfm.menu_msg["mkdir"], Webfm.menuMkdir, Webfm.menuAdmin));
     Webfm.menuHT.put('root', new Webfm.menuElement(Webfm.menu_msg["search"], Webfm.menuSearch, ''));
 
-    Webfm.menuHT.put('dir', new Webfm.menuElement(Webfm.menu_msg["mkdir"], Webfm.menuMkdir, Webfm.usCreateDir));//xl666 modification
-    Webfm.menuHT.put('dir', new Webfm.menuElement(Webfm.menu_msg["rmdir"], Webfm.menuRemove, Webfm.menuFileUid));//xl666 modification
-    Webfm.menuHT.put('dir', new Webfm.menuElement(Webfm.menu_msg["rendir"], Webfm.menuRename, Webfm.menuRenFileUid)); // xl666 modification
+    Webfm.menuHT.put('dir', new Webfm.menuElement(Webfm.menu_msg["mkdir"], Webfm.menuMkdir, Webfm.menuAdmin));
+    Webfm.menuHT.put('dir', new Webfm.menuElement(Webfm.menu_msg["rmdir"], Webfm.menuRemove, Webfm.menuAdmin));
+    Webfm.menuHT.put('dir', new Webfm.menuElement(Webfm.menu_msg["rendir"], Webfm.menuRename, Webfm.menuAdmin));
     Webfm.menuHT.put('dir', new Webfm.menuElement(Webfm.menu_msg["search"], Webfm.menuSearch, ''));
 
     Webfm.menuHT.put('file', new Webfm.menuElement(Webfm.menu_msg["rm"], Webfm.menuRemove, Webfm.menuFileUid));
@@ -868,7 +868,7 @@
 //maintain 4 column table
 Webfm.list.prototype.adminCtl = function(admin) {
   col_span = getWebfmOwnerColumn() ? 4 : 3
-  if(Webfm.usCreateDir("")) { //xl666 modification
+  if(admin) {
     if(Webfm.$('webfm-bcrumb-td').colSpan == col_span) {
       var wl = this;
       Webfm.$('webfm-bcrumb-td').colSpan = col_span - 1;
@@ -1032,7 +1032,6 @@
  */
 Webfm.dirrow = function(parent, dir, index, dd_enable, menu, eventListenerArr) {
   var dr = this;
-  this.uid = dir.u; //xl666 modification
   this.draggable = dd_enable;
   this.iconDir = getWebfmIconDir();
   //id used for drop container
@@ -1043,7 +1042,7 @@
 
   elTr.setAttribute('id', _id);
   elTr.setAttribute('title', dir.p);
-  if(dd_enable && (Webfm.admin || this.uid==getWebfmUid())) {//xl666 modification
+  if(dd_enable && Webfm.admin) {
     //Webfm.draggable must be created after title assigned to set current path
     this.dd = new Webfm.draggable(Webfm.dragCont, elTr, this.element.className);
   } else {
@@ -1086,8 +1085,8 @@
   if(getWebfmOwnerColumn()) {
     var elTd = Webfm.ce('td');
     elTd.className = 'txt';
-    if(dir.u) { // xl666 modification
-      var owner = dir.un; //xl666 modification
+    if(dir.o) {
+      var owner = Webfm.ce(dir.o);
       elTd.appendChild(Webfm.ctn(owner));
     }
     elTr.appendChild(elTd);
@@ -2087,13 +2086,6 @@
   //determine if we are the owner of this file
   return((Webfm.admin || obj.uid == getWebfmUid()) ? true : false);
 }
-
-Webfm.usCreateDir=function(obj){ //xl666 new function
-	if(canCreateDir() >= 1) return true;
-	else return false;
-}
-
-
 Webfm.menuRenFileUid =function(obj) {
   if(Webfm.menuFileUid(obj))
     // Determine if name is a metadata title
@@ -4106,4 +4098,3 @@
 Drupal.mousePosition = function(e) {
   return { x: e.clientX + document.documentElement.scrollLeft, y: e.clientY + document.documentElement.scrollTop };
 };
-
diff -Naur /var/www/drupal/sites/default/modules/webfm/webfm_file.inc /home/xl666/Escritorio/webfm/webfm_file.inc
--- /var/www/drupal/sites/default/modules/webfm/webfm_file.inc	2010-02-24 18:38:25.609253000 -0600
+++ /home/xl666/Escritorio/webfm/webfm_file.inc	2009-08-19 10:37:09.000000000 -0500
@@ -55,7 +55,6 @@
   $dest_temp = $dest.'~'; //handle possible case problem
   //File
   //if target is a file and new name isn't already used...
-  $res=db_fetch_object(db_query("SELECT uid FROM {webfm_directory} WHERE path='%s'",$source)); //xl666 modification
   if(is_file($source) && !is_file($dest)) {
     $file_o = webfm_get_file_record('', $source);
     //if we are admin or owner of target file...
@@ -92,9 +91,8 @@
 
   //Directory
   //if target is a directory, new name is a unique path and we are an admin...
-  else if(is_dir($source) && !is_dir($dest) && ($uid == 1 || $uid == $res->uid)) { //xl666 modification
+  else if(is_dir($source) && !is_dir($dest) && ($uid == 1)) {
     //if the target isn't read-only
-    changePathRecursively($source,$dest);
     if(@rename($source, $dest_temp)) {
       //directory rename is OK, back out, rename db files and rename dir again
       @rename($dest_temp, $source);
@@ -273,34 +271,4 @@
   }
   return $result;
 }
-
-/*
- * Added by xl666,  maintains the integrity of the directory owners when a
- * directory that contains another directories is moved or renamed it
- */
-function changePathRecursively($source,$dest)
-{
-  $que=db_query("SELECT path FROM {webfm_directory} WHERE path like '%s%'",$source);
-  while($res=db_fetch_object($que))
-    {
-      $arrPath=explode($source,$res->path);
-      $sub=$dest;
-      for($i=1;$i<count($arrPath);$i++)
-	{
-	  $sub.=$arrPath[$i];
-	}
-          db_query("UPDATE {webfm_directory} set path='%s' WHERE path='%s'",$sub,$res->path);
-    }
-}
-
-/* 
- * added by xl666, maintains the consistency of directory owners when there are
- * deletions 
- */
-function xdeleteRecursively($source)
-{
-  db_query("DELETE FROM {webfm_directory} WHERE path like '%s%'",$source);
-}
-
-
 ?>
diff -Naur /var/www/drupal/sites/default/modules/webfm/webfm.install /home/xl666/Escritorio/webfm/webfm.install
--- /var/www/drupal/sites/default/modules/webfm/webfm.install	2010-02-24 18:44:16.837254000 -0600
+++ /home/xl666/Escritorio/webfm/webfm.install	2009-08-19 10:35:42.000000000 -0500
@@ -89,15 +89,6 @@
     ),
     'primary key' => array('nid', 'fid', 'cid' ),
   );
-$schema['webfm_directory'] = array( //xl666 new schema
-    'fields' => array(
-      'path' => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE),
-      'uid' => array('type' => 'int', 'size' => 'normal', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-    ),
-    //doesn't have primary key, the logical it would be that path were the
-    //primary key but mysql doesn't support text/blob types as primary key 
-  );
-
   return $schema;
 }
 
diff -Naur /var/www/drupal/sites/default/modules/webfm/webfm.module /home/xl666/Escritorio/webfm/webfm.module
--- /var/www/drupal/sites/default/modules/webfm/webfm.module	2010-02-24 17:43:22.633254000 -0600
+++ /home/xl666/Escritorio/webfm/webfm.module	2009-08-19 10:44:13.000000000 -0500
@@ -153,7 +153,7 @@
  * Implementation of hook_perm().
  */
 function webfm_perm() {
-   return array('access webfm', 'view webfm attachments', 'administer webfm', 'webfm upload','create directory');
+  return array('access webfm', 'view webfm attachments', 'administer webfm', 'webfm upload');
 }
 
 /**
@@ -1022,10 +1022,8 @@
 
             if(is_dir($source)) {
               //Only admins can delete directories (and contained files)
-              $res=db_fetch_object(db_query("SELECT uid FROM {webfm_directory} WHERE path='%s'",$source)); //xl666 modification
-              if($webfm_perm == WEBFM_ADMIN || ($res->uid==$user->uid)) {//xl666 modification
+              if($webfm_perm == WEBFM_ADMIN) {
                 $err_arr[] = array();
-		xdeleteRecursively($source); //xl666 modification
                 $ret = webfm_delete_dir_recur($source, TRUE, $err_arr);
                 webfm_json(array('status' => $ret, 'data' => $err_arr));
                 exit();
@@ -1073,7 +1071,7 @@
       //Create new directory
       case "mkdir":
         //Only admins can create directories
-	if($webfm_perm == WEBFM_ADMIN || user_access('create directory')) {// xl666 modification
+        if($webfm_perm == WEBFM_ADMIN) {
           if(isset($_POST["param0"])) {
             $source = $root_dir.trim(rawurldecode($_POST["param0"]));
             $dest = t("New_Folder");
@@ -1083,7 +1081,6 @@
             if(($ret = webfm_mkdir($source, $dest, TRUE, $err_arr))!== FALSE) {
               $ret = ltrim($ret, $root_dir);
               webfm_json(array('status' => TRUE, 'data' => $ret));
-	      db_query("INSERT INTO {webfm_directory} (path,uid) VALUES ('%s',%d)",$source.'/'.$dest,$user->uid); // xl666 modification           
             } else {
               webfm_json(array('status' => FALSE, 'data' => $err_arr));
             }
@@ -1103,8 +1100,7 @@
         if(isset($_POST["param0"]) && isset($_POST["param1"])) {
           $source = $root_dir.trim(rawurldecode($_POST["param0"]));
           $dest = $root_dir.trim(rawurldecode($_POST["param1"]));
-	  $res=db_fetch_object(db_query("SELECT uid FROM {webfm_directory} WHERE path='%s'",$source)); //xl666 modification
-          if(is_dir($source) && (($webfm_perm != WEBFM_ADMIN) && ($res->uid != $user->uid))) { //xl666 modification
+          if(is_dir($source) && ($webfm_perm != WEBFM_ADMIN)) {
             //Only admins can manipulate directories
             webfm_json(array('status' => FALSE, 'data' => t('permission denied')));
             exit();
@@ -1736,7 +1732,7 @@
  * Function to pass base_url, icon directory, debug and cleanurl flags
  */
 function webfm_inline_js($base_url, $base_path, $clean_url, $uid) {
-  $js = 'function getBaseUrl(){return '. drupal_to_js($base_url) .';} function getBasePath(){return '. drupal_to_js($base_path) .';} function getWebfmIconDir(){return '. drupal_to_js($base_url .'/'. variable_get('webfm_icon_dir', drupal_get_path('module', 'webfm') .'/image/icon')) .';} function getWebfmCleanUrl(){return '.drupal_to_js($clean_url).'; }function getWebfmIETreeOffset(){return '.drupal_to_js(variable_get('webfm_ie_dd_tree_offset', '')).';}function getWebfmIEListOffset(){return '.drupal_to_js(variable_get('webfm_ie_dd_list_offset', '')).';} function getWebfmUid(){return '.drupal_to_js($uid).';} function canCreateDir(){if('.drupal_to_js(user_access('create directory')).') return 1; else return 0;} function getWebfmDateFormat(){return '.drupal_to_js(variable_get('webfm_date_format', WEBFM_DATE_FORMAT_DAY)).';} function getWebfmMetaName(){return '.drupal_to_js(variable_get('webfm_display_title', '')).';} function getWebfmOwnerColumn(){return '.drupal_to_js(variable_get('webfm_display_owner', '')).';}' ;
+  $js = 'function getBaseUrl(){return '. drupal_to_js($base_url) .';} function getBasePath(){return '. drupal_to_js($base_path) .';} function getWebfmIconDir(){return '. drupal_to_js($base_url .'/'. variable_get('webfm_icon_dir', drupal_get_path('module', 'webfm') .'/image/icon')) .';} function getWebfmCleanUrl(){return '.drupal_to_js($clean_url).'; }function getWebfmIETreeOffset(){return '.drupal_to_js(variable_get('webfm_ie_dd_tree_offset', '')).';}function getWebfmIEListOffset(){return '.drupal_to_js(variable_get('webfm_ie_dd_list_offset', '')).';} function getWebfmUid(){return '.drupal_to_js($uid).';} function getWebfmDateFormat(){return '.drupal_to_js(variable_get('webfm_date_format', WEBFM_DATE_FORMAT_DAY)).';} function getWebfmMetaName(){return '.drupal_to_js(variable_get('webfm_display_title', '')).';} function getWebfmOwnerColumn(){return '.drupal_to_js(variable_get('webfm_display_owner', '')).';}' ;
   drupal_add_js($js, 'inline');
 }
 
@@ -2015,11 +2011,7 @@
         foreach($_dirs as $dir) {
           $dd = new stdClass();
           $dd->n = $dir;
-	  $temp=db_fetch_object(db_query("SELECT name FROM {webfm_directory} as t1 natural join {users} as t2  WHERE t1.uid=t2.uid AND t1.path='%s'",$root.$path."/".$dir)); //xl666 modification
-          $dd->un= $temp->name; // xl666 modification
           $dd->p = $path."/".$dir;
-	  $temp=db_fetch_object(db_query("SELECT uid FROM {webfm_directory} WHERE path='%s'",$root.$path."/".$dir)); //xl666 modification
-          $dd->u=$temp->uid;
           $dd->m = (filemtime($full_path.'/'.$dir)) ? @filemtime($full_path.'/'.$dir) : "";
           $this->dirs[] = $dd;
         }
