Changed the behaviour of custom callbacks so that they no longer trigger the "required" rule.
diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index 33753bc..575c526 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -195,7 +195,7 @@
 			$ex = explode('|', $rules);

 

 			// Is the field required?  If not, if the field is blank  we'll move on to the next test

-			if ( ! in_array('required', $ex, TRUE) AND strpos($rules, 'callback_') === FALSE)

+			if ( ! in_array('required', $ex, TRUE))

 			{

 				if ( ! isset($_POST[$field]) OR $_POST[$field] == '')

 				{

@@ -546,7 +546,7 @@
 	 */	

 	function numeric($str)

 	{

-		return ( ! ereg("^[0-9\.]+$", $str)) ? FALSE : TRUE;

+		return ! preg_match('/[^0-9]/', $str);

 	}

 

 	// --------------------------------------------------------------------

diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index d9819d4..69e4614 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -76,7 +76,8 @@
     <li>Added a check for NULL fields in the MySQL database backup utility.</li>

     <li>Documented the timezones() function in the <a href="./helpers/date_helper.html">Date Helper</a>.</li>

     <li>Documented unset_userdata in the <a href="./libraries/sessions.html">Session class</a>.</li>

-    <li>Fixed a bug in <a href="./libraries/validation.html">Validation</a> where valid_ip() wasn't called properly</li>

+    <li>Changed the behaviour of custom callbacks so that they no longer trigger the &quot;required&quot; rule. </li>

+    <li>Fixed a bug in <a href="./libraries/validation.html">Validation</a> where valid_ip() wasn't called properly.</li>

     <li>Fixed a bug in the Session library where user agent matching would fail on user agents ending with a space. </li>

     <li>Fixed a bug in database driver where num_rows property wasn't getting updated.</li>

     <li>Fixed a bug in captcha calling an invalid PHP function.</li>