Remove dead code written for PHP 5.2
diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php
index 70f33d5..22072e9 100644
--- a/system/core/CodeIgniter.php
+++ b/system/core/CodeIgniter.php
@@ -416,11 +416,7 @@
 			$params = array($method, array_slice($URI->rsegments, 2));
 			$method = '_remap';
 		}
-		// WARNING: It appears that there are issues with is_callable() even in PHP 5.2!
-		// Furthermore, there are bug reports and feature/change requests related to it
-		// that make it unreliable to use in this context. Please, DO NOT change this
-		// work-around until a better alternative is available.
-		elseif ( ! in_array(strtolower($method), array_map('strtolower', get_class_methods($class)), TRUE))
+		elseif ( ! is_callable(array($class, $method)))
 		{
 			$e404 = TRUE;
 		}
diff --git a/system/core/Security.php b/system/core/Security.php
index d5305d1..a290700 100644
--- a/system/core/Security.php
+++ b/system/core/Security.php
@@ -678,12 +678,7 @@
 			{
 				if ( ! isset($_entities))
 				{
-					$_entities = array_map(
-						'strtolower',
-						is_php('5.3.4')
-							? get_html_translation_table(HTML_ENTITIES, $flag, $charset)
-							: get_html_translation_table(HTML_ENTITIES, $flag)
-					);
+					$_entities = array_map('strtolower', get_html_translation_table(HTML_ENTITIES, $flag, $charset));
 
 					// If we're not on PHP 5.4+, add the possibly dangerous HTML 5
 					// entities to the array manually
diff --git a/system/core/compat/password.php b/system/core/compat/password.php
index 76dd2cf..1b5219e 100644
--- a/system/core/compat/password.php
+++ b/system/core/compat/password.php
@@ -50,7 +50,7 @@
 
 // ------------------------------------------------------------------------
 
-if (is_php('5.5') OR ! is_php('5.3.7') OR ! defined('CRYPT_BLOWFISH') OR CRYPT_BLOWFISH !== 1 OR defined('HHVM_VERSION'))
+if (is_php('5.5') OR ! defined('CRYPT_BLOWFISH') OR CRYPT_BLOWFISH !== 1 OR defined('HHVM_VERSION'))
 {
 	return;
 }
diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php
index c54cab9..c839c9b 100644
--- a/system/core/compat/standard.php
+++ b/system/core/compat/standard.php
@@ -180,210 +180,3 @@
 		return pack('H*', $data);
 	}
 }
-
-// ------------------------------------------------------------------------
-
-if (is_php('5.3'))
-{
-	return;
-}
-
-// ------------------------------------------------------------------------
-
-if ( ! function_exists('array_replace'))
-{
-	/**
-	 * array_replace()
-	 *
-	 * @link	http://php.net/array_replace
-	 * @return	array
-	 */
-	function array_replace()
-	{
-		$arrays = func_get_args();
-
-		if (($c = count($arrays)) === 0)
-		{
-			trigger_error('array_replace() expects at least 1 parameter, 0 given', E_USER_WARNING);
-			return NULL;
-		}
-		elseif ($c === 1)
-		{
-			if ( ! is_array($arrays[0]))
-			{
-				trigger_error('array_replace(): Argument #1 is not an array', E_USER_WARNING);
-				return NULL;
-			}
-
-			return $arrays[0];
-		}
-
-		$array = array_shift($arrays);
-		$c--;
-
-		for ($i = 0; $i < $c; $i++)
-		{
-			if ( ! is_array($arrays[$i]))
-			{
-				trigger_error('array_replace(): Argument #'.($i + 2).' is not an array', E_USER_WARNING);
-				return NULL;
-			}
-			elseif (empty($arrays[$i]))
-			{
-				continue;
-			}
-
-			foreach (array_keys($arrays[$i]) as $key)
-			{
-				$array[$key] = $arrays[$i][$key];
-			}
-		}
-
-		return $array;
-	}
-}
-
-// ------------------------------------------------------------------------
-
-if ( ! function_exists('array_replace_recursive'))
-{
-	/**
-	 * array_replace_recursive()
-	 *
-	 * @link	http://php.net/array_replace_recursive
-	 * @return	array
-	 */
-	function array_replace_recursive()
-	{
-		$arrays = func_get_args();
-
-		if (($c = count($arrays)) === 0)
-		{
-			trigger_error('array_replace_recursive() expects at least 1 parameter, 0 given', E_USER_WARNING);
-			return NULL;
-		}
-		elseif ($c === 1)
-		{
-			if ( ! is_array($arrays[0]))
-			{
-				trigger_error('array_replace_recursive(): Argument #1 is not an array', E_USER_WARNING);
-				return NULL;
-			}
-
-			return $arrays[0];
-		}
-
-		$array = array_shift($arrays);
-		$c--;
-
-		for ($i = 0; $i < $c; $i++)
-		{
-			if ( ! is_array($arrays[$i]))
-			{
-				trigger_error('array_replace_recursive(): Argument #'.($i + 2).' is not an array', E_USER_WARNING);
-				return NULL;
-			}
-			elseif (empty($arrays[$i]))
-			{
-				continue;
-			}
-
-			foreach (array_keys($arrays[$i]) as $key)
-			{
-				$array[$key] = (is_array($arrays[$i][$key]) && isset($array[$key]) && is_array($array[$key]))
-					? array_replace_recursive($array[$key], $arrays[$i][$key])
-					: $arrays[$i][$key];
-			}
-		}
-
-		return $array;
-	}
-}
-
-// ------------------------------------------------------------------------
-
-if ( ! function_exists('quoted_printable_encode'))
-{
-	/**
-	 * quoted_printable_encode()
-	 *
-	 * @link	http://php.net/quoted_printable_encode
-	 * @param	string	$str
-	 * @return	string
-	 */
-	function quoted_printable_encode($str)
-	{
-		if (strlen($str) === 0)
-		{
-			return '';
-		}
-		elseif (in_array($type = gettype($str), array('array', 'object'), TRUE))
-		{
-			if ($type === 'object' && method_exists($str, '__toString'))
-			{
-				$str = (string) $str;
-			}
-			else
-			{
-				trigger_error('quoted_printable_encode() expects parameter 1 to be string, '.$type.' given', E_USER_WARNING);
-				return NULL;
-			}
-		}
-
-		if (function_exists('imap_8bit'))
-		{
-			return imap_8bit($str);
-		}
-
-		$i = $lp = 0;
-		$output = '';
-		$hex = '0123456789ABCDEF';
-		$length = (extension_loaded('mbstring') && ini_get('mbstring.func_overload'))
-			? mb_strlen($str, '8bit')
-			: strlen($str);
-
-		while ($length--)
-		{
-			if ((($c = $str[$i++]) === "\015") && isset($str[$i]) && ($str[$i] === "\012") && $length > 0)
-			{
-				$output .= "\015".$str[$i++];
-				$length--;
-				$lp = 0;
-				continue;
-			}
-
-			if (
-				ctype_cntrl($c)
-				OR (ord($c) === 0x7f)
-				OR (ord($c) & 0x80)
-				OR ($c === '=')
-				OR ($c === ' ' && isset($str[$i]) && $str[$i] === "\015")
-			)
-			{
-				if (
-					(($lp += 3) > 75 && ord($c) <= 0x7f)
-					OR (ord($c) > 0x7f && ord($c) <= 0xdf && ($lp + 3) > 75)
-					OR (ord($c) > 0xdf && ord($c) <= 0xef && ($lp + 6) > 75)
-					OR (ord($c) > 0xef && ord($c) <= 0xf4 && ($lp + 9) > 75)
-				)
-				{
-					$output .= "=\015\012";
-					$lp = 3;
-				}
-
-				$output .= '='.$hex[ord($c) >> 4].$hex[ord($c) & 0xf];
-				continue;
-			}
-
-			if ((++$lp) > 75)
-			{
-				$output .= "=\015\012";
-				$lp = 1;
-			}
-
-			$output .= $c;
-		}
-
-		return $output;
-	}
-}