Index: wp-admin/includes/class-wp-filesystem-base.php
===================================================================
--- wp-admin/includes/class-wp-filesystem-base.php	(revision 11656)
+++ wp-admin/includes/class-wp-filesystem-base.php	(working copy)
@@ -210,7 +210,7 @@
 			return trailingslashit($base . $last_path);
 		}
 		if ( $loop )
-			return false;//Prevent tihs function looping again.
+			return false; //Prevent tihs function looping again.
 		//As an extra last resort, Change back to / if the folder wasnt found. This comes into effect when the CWD is /home/user/ but WP is at /var/www/.... mainly dedicated setups.
 		return $this->search_for_folder($folder, '/', true);
 
@@ -242,7 +242,7 @@
 			$info = 'd';
 		elseif (($perms & 0x2000) == 0x2000) // Character special
 			$info = 'c';
-		elseif (($perms & 0x1000) == 0x1000)// FIFO pipe
+		elseif (($perms & 0x1000) == 0x1000) // FIFO pipe
 			$info = 'p';
 		else // Unknown
 			$info = 'u';
Index: wp-admin/includes/class-wp-filesystem-direct.php
===================================================================
--- wp-admin/includes/class-wp-filesystem-direct.php	(revision 11656)
+++ wp-admin/includes/class-wp-filesystem-direct.php	(working copy)
@@ -15,19 +15,14 @@
  * @uses WP_Filesystem_Base Extends class
  */
 class WP_Filesystem_Direct extends WP_Filesystem_Base {
-	var $permission = null;
 	var $errors = null;
 	function WP_Filesystem_Direct($arg) {
 		$this->method = 'direct';
 		$this->errors = new WP_Error();
-		$this->permission = umask();
 	}
 	function connect() {
 		return true;
 	}
-	function setDefaultPermissions($perm) {
-		$this->permission = $perm;
-	}
 	function get_contents($file) {
 		return @file_get_contents($file);
 	}
@@ -63,13 +58,11 @@
 
 		return true;
 	}
-	function chmod($file, $mode = false, $recursive = false) {
-		if ( ! $mode )
-			$mode = $this->permission;
+	function chmod($file, $mode, $recursive = false) {
 		if ( ! $this->exists($file) )
 			return false;
 		if ( ! $recursive )
-			return @chmod($file,$mode);
+			return @chmod($file, $mode);
 		if ( ! $this->is_dir($file) )
 			return @chmod($file, $mode);
 		//Is a directory, and we want recursive
@@ -198,10 +191,11 @@
 
 	function mkdir($path, $chmod = false, $chown = false, $chgrp = false){
 		if ( ! $chmod)
-			$chmod = $this->permission;
+			$chmod = FS_CHMOD_DIR;
 
 		if ( ! @mkdir($path, $chmod) )
 			return false;
+		chmod($path, $chmod);
 		if ( $chown )
 			$this->chown($path, $chown);
 		if ( $chgrp )
Index: wp-admin/includes/class-wp-filesystem-ftpext.php
===================================================================
--- wp-admin/includes/class-wp-filesystem-ftpext.php	(revision 11656)
+++ wp-admin/includes/class-wp-filesystem-ftpext.php	(working copy)
@@ -20,8 +20,6 @@
 	var $errors = null;
 	var $options = array();
 
-	var $permission = null;
-
 	function WP_Filesystem_FTPext($opt='') {
 		$this->method = 'ftpext';
 		$this->errors = new WP_Error();
@@ -84,10 +82,6 @@
 		return true;
 	}
 
-	function setDefaultPermissions($perm) {
-		$this->permission = $perm;
-	}
-
 	function get_contents($file, $type = '', $resumepos = 0 ){
 		if( empty($type) )
 			$type = FTP_BINARY;
@@ -139,11 +133,7 @@
 	function chgrp($file, $group, $recursive = false ) {
 		return false;
 	}
-	function chmod($file, $mode = false, $recursive = false) {
-		if( ! $mode )
-			$mode = $this->permission;
-		if( ! $mode )
-			return false;
+	function chmod($file, $mode, $recursive = false) {
 		if ( ! $this->exists($file) && ! $this->is_dir($file) )
 			return false;
 		if ( ! $recursive || ! $this->is_dir($file) ) {
@@ -153,7 +143,7 @@
 		}
 		//Is a directory, and we want recursive
 		$filelist = $this->dirlist($file);
-		foreach($filelist as $filename){
+		foreach ( $filelist as $filename){
 			$this->chmod($file . '/' . $filename, $mode, $recursive);
 		}
 		return true;
Index: wp-admin/includes/class-wp-filesystem-ftpsockets.php
===================================================================
--- wp-admin/includes/class-wp-filesystem-ftpsockets.php	(revision 11656)
+++ wp-admin/includes/class-wp-filesystem-ftpsockets.php	(working copy)
@@ -20,8 +20,6 @@
 	var $errors = null;
 	var $options = array();
 
-	var $permission = null;
-
 	function WP_Filesystem_ftpsockets($opt = '') {
 		$this->method = 'ftpsockets';
 		$this->errors = new WP_Error();
@@ -82,10 +80,6 @@
 		return true;
 	}
 
-	function setDefaultPermissions($perm) {
-		$this->permission = $perm;
-	}
-
 	function get_contents($file, $type = '', $resumepos = 0) {
 		if( ! $this->exists($file) )
 			return false;
@@ -157,15 +151,11 @@
 		return false;
 	}
 
-	function chmod($file, $mode = false, $recursive = false ) {
-		if( ! $mode )
-			$mode = $this->permission;
-		if( ! $mode )
-			return false;
+	function chmod($file, $mode, $recursive = false ) {
 		//if( ! $this->exists($file) )
 		//	return false;
 		if( ! $recursive || ! $this->is_dir($file) ) {
-			return $this->ftp->chmod($file,$mode);
+			return $this->ftp->chmod($file, $mode);
 		}
 		//Is a directory, and we want recursive
 		$filelist = $this->dirlist($file);
Index: wp-admin/includes/class-wp-filesystem-ssh2.php
===================================================================
--- wp-admin/includes/class-wp-filesystem-ssh2.php	(revision 11656)
+++ wp-admin/includes/class-wp-filesystem-ssh2.php	(working copy)
@@ -56,8 +56,6 @@
 	var $errors = array();
 	var $options = array();
 
-	var $permission = 0644;
-
 	function WP_Filesystem_SSH2($opt='') {
 		$this->method = 'ssh2';
 		$this->errors = new WP_Error();
@@ -160,12 +158,6 @@
 		return false;
 	}
 
-	function setDefaultPermissions($perm) {
-		$this->debug("setDefaultPermissions();");
-		if ( $perm )
-			$this->permission = $perm;
-	}
-
 	function get_contents($file, $type = '', $resumepos = 0 ) {
 		$file = ltrim($file, '/');
 		return file_get_contents('ssh2.sftp://' . $this->sftp_link . '/' . $file);
@@ -200,11 +192,7 @@
 		return $this->run_command(sprintf('chgrp -R %o %s', $mode, escapeshellarg($file)), true);
 	}
 
-	function chmod($file, $mode = false, $recursive = false) {
-		if( ! $mode )
-			$mode = $this->permission;
-		if( ! $mode )
-			return false;
+	function chmod($file, $mode, $recursive = false) {
 		if ( ! $this->exists($file) )
 			return false;
 		if ( ! $recursive || ! $this->is_dir($file) )
@@ -315,9 +303,10 @@
 		//Not implmented.
 	}
 
-	function mkdir($path, $chmod = null, $chown = false, $chgrp = false) {
+	function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
 		$path = untrailingslashit($path);
-		$chmod = !empty($chmod) ? $chmod : $this->permission;
+		if ( ! $chmod )
+			$chmod = FS_CHMOD_DIR;
 		if ( ! ssh2_sftp_mkdir($this->sftp_link, $path, $chmod, true) )
 			return false;
 		if ( $chown )
