PHP 5.3.0 compatibility changes
diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
index f45c85c..1ffed6a 100644
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -150,17 +150,35 @@
 	if ($is_subclass == TRUE)
 	{
 		$name = config_item('subclass_prefix').$class;
-		$objects[$class] =& new $name();
+
+		$objects[$class] =& instantiate_class(new $name());
 		return $objects[$class];
 	}
 
 	$name = ($class != 'Controller') ? 'CI_'.$class : $class;
-	
-	$objects[$class] =& new $name();
+
+	$objects[$class] =& instantiate_class(new $name());
 	return $objects[$class];
 }
 
 /**
+ * Instantiate Class
+ *
+ * Returns a new class object by reference, used by load_class() and the DB class.
+ * Required to retain PHP 4 compatibility and also not make PHP 5.3 cry.
+ *
+ * Use: $obj =& instantiate_class(new Foo());
+ * 
+ * @access	public
+ * @param	object
+ * @return	object
+ */
+function &instantiate_class(&$class_object)
+{
+	return $class_object;
+}
+
+/**
 * Loads the main config.php file
 *
 * @access	private