diff --git a/system/drivers/DB_active_record.php b/system/drivers/DB_active_record.php
index c7e4f09..af12d9d 100644
--- a/system/drivers/DB_active_record.php
+++ b/system/drivers/DB_active_record.php
@@ -390,7 +390,7 @@
 	{
 		if (trim($direction) != '')
 		{
-			$direction = (in_array(strtoupper(trim($direction)), array('ASC', 'DESC'))) ? ' '.$direction : ' ASC';
+			$direction = (in_array(strtoupper(trim($direction)), array('ASC', 'DESC', 'RAND()'))) ? ' '.$direction : ' ASC';
 		}
 		
 		$this->ar_orderby[] = $orderby.$direction;
diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php
index 24e243d..fc5920f 100644
--- a/system/helpers/cookie_helper.php
+++ b/system/helpers/cookie_helper.php
@@ -55,6 +55,22 @@
 		}
 	}
 	
+	// Set the config file options
+	$obj =& get_instance();
+	
+	if ($prefix == '' AND $obj->config->item('cookie_prefix') != '')
+	{
+		$obj->config->item('cookie_prefix');
+	}
+	if ($domain == '' AND $obj->config->item('cookie_domain') != '')
+	{
+		$obj->config->item('cookie_domain');
+	}
+	if ($prefix == '/' AND $obj->config->item('cookie_path') != '/')
+	{
+		$obj->config->item('cookie_path');
+	}
+		
 	if ( ! is_numeric($expire))
 	{
 		$expire = time() - 86500;
@@ -73,5 +89,38 @@
 	
 	setcookie($prefix.$name, $value, $expire, $path, $domain, 0);
 }
+	
+// --------------------------------------------------------------------
+
+/**
+ * Fetch an item from the COOKIE array
+ *
+ * @access	public
+ * @param	string
+ * @param	bool
+ * @return	mixed
+ */
+function get_cookie($index = '', $xss_clean = FALSE)
+{
+	$obj =& get_instance();
+	return $obj->input->cookie($index, $xss_clean);
+}
+
+// --------------------------------------------------------------------
+
+/**
+ * Delete a COOKIE
+ *
+ * @param	mixed
+ * @param	string	the cookie domain.  Usually:  .yourdomain.com
+ * @param	string	the cookie path
+ * @param	string	the cookie prefix
+ * @return	void
+ */
+function delete_cookie($name = '', $domain = '', $path = '/', $prefix = '')
+{
+	set_cookie($name, '', '', $domain, $path, $prefix);
+}
+
 
 ?>
\ No newline at end of file
diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index 065e7a2..f9b51d7 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -524,7 +524,7 @@
 	 */	
 	function numeric($str)
 	{
-		return ( ! is_numeric($str)) ? FALSE : TRUE;
+		return ( ! ereg("^[0-9]+$", $str)) ? FALSE : TRUE;
 	}
 	
 	// --------------------------------------------------------------------
diff --git a/user_guide/general/changelog.html b/user_guide/general/changelog.html
index ca04b14..80ffe7a 100644
--- a/user_guide/general/changelog.html
+++ b/user_guide/general/changelog.html
@@ -71,10 +71,13 @@
 <li>Added <a href="../helpers/inflector_helper.html">Inflector helper</a>.</li>

 <li>Added element() function in the <a href="../helpers/array_helper.html">array helper</a>.</li>

 <li>Added <a href="../libraries/output.html">$this->output->set_header()</a> function, which allows you to set server headers.</li>

+<li>Added RAND() to active record orderby() function.</li>

+<li>Added <dfn>delete_cookie()</dfn> and <dfn>get_cookie()</dfn> to <a href="../helpers/cookie_helper.html">Cookie helper</a>, even though the input class has a cookie fetching function.</li>

 <li>Removed the is_numeric test from the db->escape() function.</li>

 <li>Fixed a MySQLi bug that was causing error messages not to contain proper errror data.</li>

 <li>Fixed a bug in the email class which was causing it to ignore explicitly set alternative headers.</li>

 <li>Fixed a bug that was causing a PHP error when the Exceptions class was called within the _get_config() function.</li>

+<li>Fixed an oversight in the cookie helper in which the config file cookie settings were not being honored.</li>

 <li>Added some code to allow email attachments to be reset when sending batches of email.</li>

 <li>Deprecated the following database functions: $this->db->smart_escape_str() and $this->db->fields().</li>

 </ul>

diff --git a/user_guide/helpers/cookie_helper.html b/user_guide/helpers/cookie_helper.html
index 3e89df7..9c17cdd 100644
--- a/user_guide/helpers/cookie_helper.html
+++ b/user_guide/helpers/cookie_helper.html
@@ -76,7 +76,7 @@
 <h2>set_cookie()</h2>

 

 <p>Sets a cookie containing the values you specify.  There are two ways to pass information this function so that a cookie can be set:

-Arrray Method, and Discreet Parameters:</p>

+Array Method, and Discreet Parameters:</p>

 

 <h4>Array Method</h4>

 

@@ -112,6 +112,30 @@
 

 <code>set_cookie($name, $value, $expire, $domain, $path, $prefix);</code>

 

+<h2>get_cookie()</h2>

+

+<p>Lets you fetch a cookie.  The first parameter will contain the name of the cookie you are looking for:</p>

+

+<code>get_cookie('some_cookie');</code>

+

+<p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p>

+

+<p>The second optional parameter lets you run the data through the XSS filter.  It's enabled by setting the second parameter to boolean TRUE;</p>

+

+<code>get_cookie('some_cookie', TRUE);</code>

+

+

+

+<h2>delete_cookie()</h2>

+

+<p>Lets you delete a cookie.  Unless you've set a custom path or other values, only the name of the cookie is needed:</p>

+

+<code>delete_cookie("name");</code>

+

+<p>This function is otherwise identical to <dfn>set_cookie()</dfn>, except that it does not have the value and expiration parameters.  You can submit an array 

+of values in the first parameter or you can set discreet parameters.</p>

+

+<code>delete_cookie($name, $domain, $path, $prefix)</code>

 

 

 </div>

diff --git a/user_guide/libraries/database/active_record.html b/user_guide/libraries/database/active_record.html
index 793f41f..b45c5d1 100644
--- a/user_guide/libraries/database/active_record.html
+++ b/user_guide/libraries/database/active_record.html
@@ -354,7 +354,7 @@
 	

 <h2>$this->db->orderby();</h2>

 <p>Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by. 

-The second parameter lets you set the direction of the result.  Options are <kbd>asc</kbd> or <kbd>desc</kbd></p>

+The second parameter lets you set the direction of the result.  Options are <kbd>asc</kbd> or <kbd>desc</kbd> or <kbd>RAND()</kbd></p>

 	

 <code>$this->db->orderby("title", "desc");

 <br /><br />// Produces: ORDER BY title DESC