Removed $recurse parameter in lieu of auto parsing. Changed "provision" entry.
diff --git a/system/core/Input.php b/system/core/Input.php
index ffe7b4d..7424a00 100644
--- a/system/core/Input.php
+++ b/system/core/Input.php
@@ -149,10 +149,9 @@
 	 * @param	array	&$array		$_GET, $_POST, $_COOKIE, $_SERVER, etc.
 	 * @param	string	$index		Index for item to be fetched from $array
 	 * @param	bool	$xss_clean	Whether to apply XSS filtering
-	 * @param	bool	$recurse	Whether to recurse into arrays via nested keys
 	 * @return	mixed
 	 */
-	protected function _fetch_from_array(&$array, $index = '', $xss_clean = FALSE, $recurse = FALSE)
+	protected function _fetch_from_array(&$array, $index = '', $xss_clean = FALSE)
 	{
 		$value = NULL;
 
@@ -160,9 +159,8 @@
 		{
 			$value = $array[$index];
 		}
-		else if($recurse)
+		else if(preg_match('/\[[^]]*\]$/', $index))		// Does the index contain array notation
 		{
-			// We couldn't find the $field as a simple key, so try the nested notation
 			$key = $index;
 			$container = $array;
 			
@@ -211,10 +209,9 @@
 	 *
 	 * @param	string	$index		Index for item to be fetched from $_GET
 	 * @param	bool	$xss_clean	Whether to apply XSS filtering
-	 * @param	bool	$recurse	Whether to recurse into arrays via nested keys
 	 * @return	mixed
 	 */
-	public function get($index = NULL, $xss_clean = FALSE, $recurse = FALSE)
+	public function get($index = NULL, $xss_clean = FALSE)
 	{
 		// Check if a field has been provided
 		if ($index === NULL)
@@ -229,12 +226,12 @@
 			// loop through the full _GET array
 			foreach (array_keys($_GET) as $key)
 			{
-				$get[$key] = $this->_fetch_from_array($_GET, $key, $xss_clean, $recurse);
+				$get[$key] = $this->_fetch_from_array($_GET, $key, $xss_clean);
 			}
 			return $get;
 		}
 
-		return $this->_fetch_from_array($_GET, $index, $xss_clean, $recurse);
+		return $this->_fetch_from_array($_GET, $index, $xss_clean);
 	}
 
 	// --------------------------------------------------------------------
@@ -244,10 +241,9 @@
 	 *
 	 * @param	string	$index		Index for item to be fetched from $_POST
 	 * @param	bool	$xss_clean	Whether to apply XSS filtering
-	 * @param	bool	$recurse	Whether to recurse into arrays via nested keys
 	 * @return	mixed
 	 */
-	public function post($index = NULL, $xss_clean = FALSE, $recurse = FALSE)
+	public function post($index = NULL, $xss_clean = FALSE)
 	{
 		// Check if a field has been provided
 		if ($index === NULL)
@@ -262,12 +258,12 @@
 			// Loop through the full _POST array and return it
 			foreach (array_keys($_POST) as $key)
 			{
-				$post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean, $recurse);
+				$post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean);
 			}
 			return $post;
 		}
 
-		return $this->_fetch_from_array($_POST, $index, $xss_clean, $recurse);
+		return $this->_fetch_from_array($_POST, $index, $xss_clean);
 	}
 
 	// --------------------------------------------------------------------
@@ -277,14 +273,13 @@
 	 *
 	 * @param	string	$index		Index for item to be fetched from $_POST or $_GET
 	 * @param	bool	$xss_clean	Whether to apply XSS filtering
-	 * @param	bool	$recurse	Whether to recurse into arrays via nested keys
 	 * @return	mixed
 	 */
-	public function get_post($index = '', $xss_clean = FALSE, $recurse = FALSE)
+	public function get_post($index = '', $xss_clean = FALSE)
 	{
 		return isset($_POST[$index])
-			? $this->post($index, $xss_clean, $recurse)
-			: $this->get($index, $xss_clean, $recurse);
+			? $this->post($index, $xss_clean)
+			: $this->get($index, $xss_clean);
 	}
 
 	// --------------------------------------------------------------------
@@ -294,12 +289,11 @@
 	 *
 	 * @param	string	$index		Index for item to be fetched from $_COOKIE
 	 * @param	bool	$xss_clean	Whether to apply XSS filtering
-	 * @param	bool	$recurse	Whether to recurse into arrays via nested keys
 	 * @return	mixed
 	 */
-	public function cookie($index = '', $xss_clean = FALSE, $recurse = FALSE)
+	public function cookie($index = '', $xss_clean = FALSE)
 	{
-		return $this->_fetch_from_array($_COOKIE, $index, $xss_clean, $recurse);
+		return $this->_fetch_from_array($_COOKIE, $index, $xss_clean);
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php
index d2c22b0..2238af9 100644
--- a/system/helpers/form_helper.php
+++ b/system/helpers/form_helper.php
@@ -647,7 +647,7 @@
 			return form_prep($OBJ->set_value($field, $default), $is_textarea);
 		}
 
-		if (FALSE !== ($OBJ =& _get_input_object()) && ($value = $OBJ->post($field, FALSE, TRUE)))
+		if (FALSE !== ($OBJ =& _get_input_object()) && ($value = $OBJ->post($field, FALSE)))
 		{
 			return form_prep($value, $is_textarea);
 		}
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index bc74973..6ef08c1 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -304,7 +304,7 @@
 	 -  Changed method ``valid_ip()`` to use PHP's native ``filter_var()`` function.
 	 -  Changed internal method ``_sanitize_globals()`` to skip enforcing reversal of *register_globals* in PHP 5.4+, where this functionality no longer exists.
 	 -  Changed methods ``get()``, ``post()``, ``get_post()``, ``cookie()``, ``server()``, ``user_agent()`` to return NULL instead of FALSE when no value is found.
-	 -  Added provision for using array notation for keys.
+	 -  Changed method ``_fetch_from_array()`` to parse array notation in field name.
    -  :doc:`Common functions <general/common_functions>` changes include:
 	 -  Added function :php:func:`get_mimes()` to return the *application/config/mimes.php* array.
 	 -  Added support for HTTP code 303 ("See Other") in :php:func:`set_status_header()`.