Automated merge with http://hg.ellislab.com/CodeIgniter2
diff --git a/application/controllers/welcome.php b/application/controllers/welcome.php
index 2e4cff8..3c2f7e1 100644
--- a/application/controllers/welcome.php
+++ b/application/controllers/welcome.php
@@ -1,10 +1,10 @@
 <?php
 
-class Welcome extends Controller {
+class Welcome extends CI_Controller {
 
 	function Welcome()
 	{
-		parent::Controller();
+		parent::CI_Controller();
 	}
 
 	function index()
diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php
index b522819..bf412b2 100644
--- a/system/core/CodeIgniter.php
+++ b/system/core/CodeIgniter.php
@@ -261,7 +261,7 @@
 	if ( ! class_exists($class)
 		OR $method == 'controller'
 		OR strncmp($method, '_', 1) == 0
-		OR in_array(strtolower($method), array_map('strtolower', get_class_methods('Controller')))
+		OR in_array(strtolower($method), array_map('strtolower', get_class_methods('CI_Controller')))
 		)
 	{
 		show_404("{$class}/{$method}");
diff --git a/system/core/Controller.php b/system/core/Controller.php
index 9bd9912..e250caf 100644
--- a/system/core/Controller.php
+++ b/system/core/Controller.php
@@ -27,17 +27,17 @@
  * @author		ExpressionEngine Dev Team
  * @link		http://codeigniter.com/user_guide/general/controllers.html
  */
-class Controller extends CI_Base {
+class CI_Controller extends CI_Base {
 
 	/**
 	 * Constructor
 	 *
 	 * Calls the initialize() function
 	 */
-	function Controller()
+	function CI_Controller()
 	{
 		parent::CI_Base();
-
+		
 		// Assign all the class objects that were instantiated by the
 		// bootstrap file (CodeIgniter.php) to local class variables
 		// so that CI can run as one big super object.
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 5bfbee7..67fcb7e 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -75,6 +75,7 @@
 			<li>Added ability to set "Package" paths - specific paths where the Loader and Config classes should try to look first for a requested file.  This allows distribution of sub-applications with their own libraries, models, config files, etc. in a single "package" directory.  See the <a href="libraries/loader.html">Loader class</a> documentation for more details.</li>
 			<li>In-development code is now hosted at <a href="http://bitbucket.org/ellislab/codeigniter/">BitBucket</a>.</li>
 			<li>Removed the deprecated Validation Class.</li>
+			<li>Added CI_ Prefix to all core classes.</li>
 		</ul>
 	<li>Libraries
 		<ul>
diff --git a/user_guide/general/controllers.html b/user_guide/general/controllers.html
index cdc4b3e..56a1145 100644
--- a/user_guide/general/controllers.html
+++ b/user_guide/general/controllers.html
@@ -96,7 +96,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="10">
 &lt;?php
-class Blog extends Controller {
+class Blog extends CI_Controller {
 
 	function index()
 	{
@@ -119,7 +119,7 @@
 <p>Note: Class names must start with an uppercase letter.  In other words, this is valid:</p>
 
 <code>&lt;?php<br />
-class <var>Blog</var> extends Controller {<br />
+class <var>Blog</var> extends CI_Controller {<br />
 <br />
 }<br />
 ?&gt;</code>
@@ -127,7 +127,7 @@
 <p>This is <strong>not</strong> valid:</p>
 
 <code>&lt;?php<br />
-class <var>blog</var> extends Controller {<br />
+class <var>blog</var> extends CI_Controller {<br />
 <br />
 }<br />
 ?&gt;</code>
@@ -151,7 +151,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="15">
 &lt;?php
-class Blog extends Controller {
+class Blog extends CI_Controller {
 
 	function index()
 	{
@@ -185,7 +185,7 @@
 
 <code>
 &lt;?php<br />
-class Products extends Controller {<br />
+class Products extends CI_Controller {<br />
 <br />
 &nbsp;&nbsp;&nbsp;&nbsp;function shoes($sandals, $id)<br />
 &nbsp;&nbsp;&nbsp;&nbsp;{<br />
@@ -330,7 +330,7 @@
 
 <p>If you intend to use a constructor in any of your Controllers, you <strong>MUST</strong> place the following line of code in it:</p>
 
-<code>parent::Controller();</code>
+<code>parent::CI_Controller();</code>
 
 <p>The reason this line is necessary is because your local constructor will be overriding the one in the parent controller class so we need to manually call it.</p>
 
@@ -339,11 +339,11 @@
 
 <code>
 &lt;?php<br />
-class <kbd>Blog</kbd> extends Controller {<br />
+class <kbd>Blog</kbd> extends CI_Controller {<br />
 <br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function <kbd>Blog()</kbd><br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>parent::Controller();</var><br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>parent::CI_Controller();</var><br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
 }<br />
 ?&gt;</code>
@@ -352,11 +352,11 @@
 
 <code>
 &lt;?php<br />
-class <kbd>Blog</kbd> extends Controller {<br />
+class <kbd>Blog</kbd> extends CI_Controller {<br />
 <br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function <kbd>__construct()</kbd><br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>parent::Controller();</var><br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>parent::CI_Controller();</var><br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
 }<br />
 ?&gt;</code>
diff --git a/user_guide/general/views.html b/user_guide/general/views.html
index 8f31710..228eb64 100644
--- a/user_guide/general/views.html
+++ b/user_guide/general/views.html
@@ -98,7 +98,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="10">
 &lt;?php
-class Blog extends Controller {
+class Blog extends CI_Controller {
 
 	function index()
 	{
@@ -117,7 +117,7 @@
 <p>CodeIgniter will intelligently handle  multiple calls to $this-&gt;load-&gt;view from within a controller.  If more than one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:</p>
 <p><code>&lt;?php<br />
 <br />
-class Page extends Controller {<br /><br />
+class Page extends CI_Controller {<br /><br />
 
  &nbsp;&nbsp;&nbsp;function index()<br />
 &nbsp;&nbsp;&nbsp;{<br />
@@ -163,7 +163,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="14">
 &lt;?php
-class Blog extends Controller {
+class Blog extends CI_Controller {
 
 	function index()
 	{
@@ -203,7 +203,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="17">
 &lt;?php
-class Blog extends Controller {
+class Blog extends CI_Controller {
 
 	function index()
 	{
diff --git a/user_guide/helpers/smiley_helper.html b/user_guide/helpers/smiley_helper.html
index d95562d..d7c2d16 100644
--- a/user_guide/helpers/smiley_helper.html
+++ b/user_guide/helpers/smiley_helper.html
@@ -99,11 +99,11 @@
 <textarea class="textarea" style="width:100%" cols="50" rows="25">
 &lt;?php
 
-class Smileys extends Controller {
+class Smileys extends CI_Controller {
 
 	function Smileys()
 	{
-		parent::Controller();
+		parent::CI_Controller();
 	}
 
 	function index()
diff --git a/user_guide/installation/upgrade_200.html b/user_guide/installation/upgrade_200.html
index 58ed6e5..fa57dfb 100644
--- a/user_guide/installation/upgrade_200.html
+++ b/user_guide/installation/upgrade_200.html
@@ -102,7 +102,11 @@
 
 </p>
 
-<h2>Step 5: Update your user guide</h2>
+<h2>Step 5: Update Class extension</h2>
+<p>All core classes are now prefixed with <kbd>CI_</kbd>.  Update Models and Controllers to extend CI_Model and CI_Controller, respectively.</p> 
+
+
+<h2>Step 6: Update your user guide</h2>
 <p>Please replace your local copy of the user guide with the new version, including the image files.</p>
 
 </div>
diff --git a/user_guide/installation/upgrading.html b/user_guide/installation/upgrading.html
index 6df93b1..eb1cd9d 100644
--- a/user_guide/installation/upgrading.html
+++ b/user_guide/installation/upgrading.html
@@ -60,6 +60,7 @@
 <p>Please read the upgrade notes corresponding to the version you are upgrading from.</p>
 
 <ul>
+<li><a href="upgrade_200.html">Upgrading from 1.7.2 to 2.0</a></li>
 <li><a href="upgrade_172.html">Upgrading from 1.7.1 to 1.7.2</a></li>
 <li><a href="upgrade_171.html">Upgrading from 1.7.0 to 1.7.1</a></li>
 <li><a href="upgrade_170.html">Upgrading from 1.6.3 to 1.7.0</a></li>
diff --git a/user_guide/libraries/file_uploading.html b/user_guide/libraries/file_uploading.html
index 254b266..ea0e2a2 100644
--- a/user_guide/libraries/file_uploading.html
+++ b/user_guide/libraries/file_uploading.html
@@ -144,11 +144,11 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="43">&lt;?php
 
-class Upload extends Controller {
+class Upload extends CI_Controller {
 
 	function Upload()
 	{
-		parent::Controller();
+		parent::CI_Controller();
 		$this->load->helper(array('form', 'url'));
 	}
 
diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html
index 18f391a..eae2036 100644
--- a/user_guide/libraries/form_validation.html
+++ b/user_guide/libraries/form_validation.html
@@ -221,7 +221,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="21">&lt;?php
 
-class Form extends Controller {
+class Form extends CI_Controller {
 
 	function index()
 	{
@@ -312,7 +312,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="28">&lt;?php
 
-class Form extends Controller {
+class Form extends CI_Controller {
 
 	function index()
 	{
@@ -514,7 +514,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="44">&lt;?php
 
-class Form extends Controller {
+class Form extends CI_Controller {
 
 	function index()
 	{
@@ -805,7 +805,7 @@
 
 <code>
 &lt;?php<br /><br />
-class <kbd>Member</kbd> extends Controller {<br />
+class <kbd>Member</kbd> extends CI_Controller {<br />
 <br />
 &nbsp;&nbsp;&nbsp;function <kbd>signup</kbd>()<br />
 &nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
diff --git a/user_guide/libraries/xmlrpc.html b/user_guide/libraries/xmlrpc.html
index 971ab02..87ca094 100644
--- a/user_guide/libraries/xmlrpc.html
+++ b/user_guide/libraries/xmlrpc.html
@@ -211,7 +211,7 @@
 <p>Using the above example, if the <var>new_post</var> method is requested, the server will expect a class
 to exist with this prototype:</p>
 
-<code>class <kbd>My_blog</kbd> extends Controller {<br />
+<code>class <kbd>My_blog</kbd> extends CI_Controller {<br />
 <br />
 &nbsp;&nbsp;&nbsp;&nbsp;function <kbd>new_post</kbd>(<var>$request</var>)<br />
 &nbsp;&nbsp;&nbsp;&nbsp;{<br />
@@ -230,7 +230,7 @@
 function might look:</p>
 
 
-<code>class <kbd>My_blog</kbd> extends Controller {<br />
+<code>class <kbd>My_blog</kbd> extends CI_Controller {<br />
 <br />
 &nbsp;&nbsp;&nbsp;&nbsp;function <kbd>getUserInfo</kbd>(<var>$request</var>)<br />
 &nbsp;&nbsp;&nbsp;&nbsp;{<br />
@@ -323,7 +323,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="32">&lt;?php
 
-class Xmlrpc_client extends Controller {
+class Xmlrpc_client extends CI_Controller {
 
 	function index()
 	{
@@ -361,7 +361,7 @@
 
 <textarea class="textarea" style="width:100%" cols="50" rows="30">&lt;?php
 
-class Xmlrpc_server extends Controller {
+class Xmlrpc_server extends CI_Controller {
 
 	function index()
 	{