diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php
index 532bfe1..bcffdf1 100644
--- a/system/libraries/Encrypt.php
+++ b/system/libraries/Encrypt.php
@@ -322,7 +322,7 @@
 	 */		
 	function set_hash($type = 'sha1')
 	{
-		$this->_hash_type = ($type != 'sha1' OR $type != 'md5') ? 'sha1' : $type;
+		$this->_hash_type = ($type != 'sha1' AND $type != 'md5') ? 'sha1' : $type;
 	}
   	// END set_hash()
   	
diff --git a/system/libraries/Language.php b/system/libraries/Language.php
index b668aa0..328d53e 100644
--- a/system/libraries/Language.php
+++ b/system/libraries/Language.php
@@ -68,7 +68,7 @@
 	
 		if ( ! file_exists(BASEPATH.'language/'.$idiom.'/'.$langfile))
 		{
-			show_error('Unable to load the requested language file: language/'.$langfile.EXT);
+			show_error('Unable to load the requested language file: language/'.$langfile);
 		}
 
 		include_once(BASEPATH.'language/'.$idiom.'/'.$langfile);
diff --git a/system/libraries/Log.php b/system/libraries/Log.php
index 35e30b6..17b96b2 100644
--- a/system/libraries/Log.php
+++ b/system/libraries/Log.php
@@ -88,7 +88,7 @@
 			return FALSE;
 		}
 	
-		$filepath = $this->log_path.'log-'.date('Y-m-d').'.php';
+		$filepath = $this->log_path.'log-'.date('Y-m-d').EXT;
 		$message  = '';
 		
 		if ( ! file_exists($filepath))
diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index df8c70e..e037e69 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -252,12 +252,12 @@
 				// Strip the parameter (if exists) from the rule
 				// Rules can contain a parameter: max_length[5]
 				$param = FALSE;
-				if (preg_match("/.*?(\[.*?\]).*/", $rule, $match))
+				if (preg_match("/(.*?)\[(.*?)\]/", $rule, $match))
 				{
-					$param = substr(substr($match['1'], 1), 0, -1);
-					$rule  = str_replace($match['1'], '', $rule);
+					$rule	= $match[1];
+					$param	= $match[2];
 				}
-
+				
 				// Call the function that corresponds to the rule
 				if ($callback === TRUE)
 				{