Added array notation for keys in Input library
diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php
index 692909c..d2c22b0 100644
--- a/system/helpers/form_helper.php
+++ b/system/helpers/form_helper.php
@@ -642,14 +642,17 @@
 	 */
 	function set_value($field = '', $default = '', $is_textarea = FALSE)
 	{
-		if (FALSE === ($OBJ =& _get_validation_object()))
+		if (FALSE !== ($OBJ =& _get_validation_object()) && $OBJ->has_rule($field))
 		{
-			return isset($_POST[$field])
-				? form_prep($_POST[$field], $is_textarea)
-				: form_prep($default, $is_textarea);
+			return form_prep($OBJ->set_value($field, $default), $is_textarea);
 		}
 
-		return form_prep($OBJ->set_value($field, $default), $is_textarea);
+		if (FALSE !== ($OBJ =& _get_input_object()) && ($value = $OBJ->post($field, FALSE, TRUE)))
+		{
+			return form_prep($value, $is_textarea);
+		}
+
+		return form_prep($default, $is_textarea);
 	}
 }
 
@@ -1004,5 +1007,36 @@
 	}
 }
 
+// ------------------------------------------------------------------------
+
+if ( ! function_exists('_get_input_object'))
+{
+	/**
+	 * Input Object
+	 *
+	 * Fetches the input object
+	 *
+	 * @return	mixed
+	 */
+	function &_get_input_object()
+	{
+		$CI =& get_instance();
+
+		// We set this as a variable since we're returning by reference.
+		$return = FALSE;
+
+		if ( ! isset($CI->input) OR ! is_object($CI->input))
+		{
+			return $return;
+		}
+		else
+		{
+			$return = $CI->input;
+		}
+		
+		return $return;
+	}
+}
+
 /* End of file form_helper.php */
 /* Location: ./system/helpers/form_helper.php */
\ No newline at end of file