Index: wp-includes/cache.php
===================================================================
--- wp-includes/cache.php	(revision 3465)
+++ wp-includes/cache.php	(working copy)
@@ -310,9 +310,11 @@
 		$dir_perms = $stat['mode'] & 0007777; // Get the permission bits.
 		$file_perms = $dir_perms & 0000666; // Remove execute bits for files.
 
+		$old_umask = umask(0);
+
 		// Make the base cache dir.
 		if (!file_exists($this->cache_dir)) {
-			if (! @ mkdir($this->cache_dir))
+			if (! @ mkdir($this->cache_dir, $dir_perms))
 				return false;
 			@ chmod($this->cache_dir, $dir_perms);
 		}
@@ -362,6 +364,8 @@
 
 		$this->dirty_objects = array();
 
+		umask($old_umask);
+
 		$this->release_lock();
 		
 		if ( $errors )

