--- imce/imce.module	2006-11-14 16:16:32.000000000 -0800
+++ imce.new/imce.module	2006-11-28 07:57:45.000000000 -0800
@@ -150,16 +149,17 @@
   $file['tmp_name'] = $temp;
 
   //dont like too long filenames and files without an extension.
-  $file['name'] = trim(basename($file['name']), '.');
+  $file['name'] = trim(preg_replace('/^.+[\\\\\\/]/', '', $file['name']));
   if (strlen($file['name'])>32) {
     drupal_set_message(t('Filename is too long(>32 chars).'), 'error');
     return false;
   }
+
   if (!($dot = strrpos($file['name'], '.'))) {
     drupal_set_message(t('Invalid filename.'), 'error');
     return false;
   }
-  
+
   $extension = strtolower(substr($file['name'], $dot));
   $nolimit = user_access('limitless upload');
   
@@ -211,7 +211,7 @@
   }
 
   //copy file
-  $cleared = preg_replace("/[^\w\-\_]/", '_', substr($file['name'], 0, $dot)).$extension;//clear unwanted characters in filename.
+  $cleared = preg_replace("/[^\S\-\_]/", '_', substr($file['name'], 0, $dot)).$extension;//clear unwanted characters in filename.
   $newpath = file_create_filename($cleared, $dir);
   if (!@copy($file['tmp_name'], $newpath)) {
     drupal_set_message(t('Error copying the file.'), 'error');
