--- FTP_orig.php	2003-11-17 04:19:36.000000000 +0100
+++ FTP.php	2003-11-17 04:26:32.000000000 +0100
@@ -7,9 +7,9 @@
     define("NET_FTP_DIRS_FILES", 2, true);
     define("NET_FTP_RAWLIST", 3, true);
 
     // drwx---r-x  2 system   System            0 Nov 15 11:17 Foo
-    define("NET_FTP_DIR_EREG", "([-dl])([rwx-]{9})[ ]*([0-9]*)[ ]*([a-zA-Z0-9_-]*)[ ]*([a-zA-Z0-9_-]*)[ ]*([0-9]*)[ ]*([A-Za-z]+ [0-9: ]*) (.+)", true);
+    define("NET_FTP_DIR_EREG", "([-dl])([rwxst-]{9})[ ]*([0-9]*)[ ]*([a-zA-Z0-9_-]*)[ ]*([a-zA-Z0-9_-]*)[ ]*([0-9]*)[ ]*([A-Za-z]+ [0-9: ]*) (.+)", true);
     // lrwxrwxrwx 1 oir100 nogroup 17 Sep 23 07:39 README.mod_sql -> ../README.mod_sql
     
     
 
@@ -922,8 +922,11 @@
         function _list_and_parse ( $dir ) {
             $dirs_list = array();
             $files_list = array();
             $dir_list = ftp_rawlist($this->_handle, $dir);
+            //if server prepends with 'total <nr>' shift it of
+            if (substr($dir_list[0], 0, 6) == 'total ')
+                array_shift($dir_list);
             foreach ($dir_list as $entry) {
                 // ([1] = directory?, [2] = rights, [3] = files below, [4] = user,
                 //  [5] = group, [6] = size, [7] = date, [8]  = name)
                 $res_1 = @ereg(NET_FTP_DIR_EREG ,$entry,$eregs);
