Made is_really_writable conditionally call is_writable when the function will work reliably
diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
index 8c08d35..9212f07 100644
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -32,16 +32,23 @@
 /**

  * Tests for file writability

  *

- * is_writable() returns TRUE on Windows servers

- * when you really can't write to the file

- * as the OS reports to PHP as FALSE only if the

- * read-only attribute is marked.  Ugh?

+ * is_writable() returns TRUE on Windows servers when you really can't write to 

+ * the file, based on the read-only attribute.  is_writable() is also unreliable

+ * on Unix servers if safe_mode is on. 

  *

  * @access	private

  * @return	void

  */

 function is_really_writable($file)

-{

+{	

+	// If we're on a Unix server with safe_mode off we call is_writable

+	if (DIRECTORY_SEPARATOR == '/' AND @ini_get("safe_mode") == FALSE)

+	{

+		return is_writable($file);

+	}

+

+	// For windows servers and safe_mode "on" installations we'll actually

+	// write a file then read it.  Bah...

 	if (is_dir($file))

 	{

 		$file = rtrim($file, '/').'/'.md5(rand(1,100));