- if ( ! $recursive || ! $this->is_dir($file) ) {
- return $this->ftp->chmod($file, $mode);
+ // chmod any sub-objects if recursive.
+ if ( $recursive && $this->is_dir($file) ) {
+ $filelist = $this->dirlist($file);
+ foreach ( (array)$filelist as $filename => $filemeta )
+ $this->chmod($file . '/' . $filename, $mode, $recursive);