--- filebrowser.module.orig	2009-07-20 09:08:02.000000000 +0200
+++ filebrowser.module	2010-01-17 19:21:39.000000000 +0100
@@ -25,6 +25,14 @@
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 
+function filebrowser_basename($path,$prefix = '') {
+	$path = preg_replace('|^.+[\\/]|', '', $path);
+        if ($prefix) {
+	        $path = preg_replace('|'. preg_quote($prefix) .'$|', '', $path);
+	}
+	return $path;
+}
+	    
 
 function filebrowser_debug() {
 	static $is_debug;
@@ -190,7 +198,7 @@
 
 		$relative_path = implode('/', $url_parts);
 		if (arg(0) == 'filebrowser_download' || arg(0) == 'filebrowser_download_archive') {
-			$node->download_file_name = basename($relative_path);
+			$node->download_file_name = filebrowser_basename($relative_path);
 			$relative_path = dirname($relative_path);
 			if ($relative_path == '.') {
 				$relative_path = "/";
@@ -317,7 +325,7 @@
 			}
 			if ($file_name == '.') {
 				$files[$file_name]['path'] = $full_path;
-				$files[$file_name]['name'] = basename($full_path);
+				$files[$file_name]['name'] = filebrowser_basename($full_path);
 			}
 
 			if ($file_name == '..') {
@@ -657,7 +665,7 @@
 			if ($file['kind'] == 0) {
 				$links['file_browser_download_archive'] = array (
 					'href' => 'filebrowser_download_archive/' . $node->nid,
-					'query' => "path=" . $node->relative_path . ($node->relative_path == '/' ? $node->title : basename($node->relative_path)) . ".zip",
+					'query' => "path=" . $node->relative_path . ($node->relative_path == '/' ? $node->title : filebrowser_basename($node->relative_path)) . ".zip",
 					'title' => t("Download files as an Archive")
 				);
 				break;
