Fix #3904
diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php
index 36a8148..0251286 100644
--- a/system/libraries/Form_validation.php
+++ b/system/libraries/Form_validation.php
@@ -618,6 +618,12 @@
 					$rules = array(1 => $rule);
 					break;
 				}
+				elseif (is_array($rule) && isset($rule[0], $rule[1]) && is_callable($rule[1]))
+				{
+					$callback = TRUE;
+					$rules = array($rule[0] => $rule[1]);
+					break;
+				}
 			}
 
 			if ( ! $callback)