diff --git a/system/libraries/Config.php b/system/libraries/Config.php
index 532f70d..108c94a 100644
--- a/system/libraries/Config.php
+++ b/system/libraries/Config.php
@@ -229,7 +229,7 @@
 	function system_url()
 	{
 		$x = explode("/", preg_replace("|/*(.+?)/*$|", "\\1", BASEPATH));
-		return $this->item('base_url', 1).end($x).'/';
+		return $this->slash_item('base_url').end($x).'/';
 	}
   	// END system_url()
   	
diff --git a/system/libraries/Router.php b/system/libraries/Router.php
index 1c67113..c7e855a 100644
--- a/system/libraries/Router.php
+++ b/system/libraries/Router.php
@@ -312,12 +312,12 @@
 			$key = str_replace(':any', '.+', str_replace(':num', '[0-9]+', $key));
 			
 			// Does the RegEx match?
-			if (preg_match('|^'.$key.'$|', $uri))
+			if (preg_match('#^'.preg_quote($key).'$#', $uri))
 			{			
 				// Do we have a back-reference?
 				if (strpos($val, '$') !== FALSE AND strpos($key, '(') !== FALSE)
 				{
-					$val = preg_replace('|^'.$key.'$|', $val, $uri);
+					$val = preg_replace('#^'.preg_quote($key).'$#', $val, $uri);
 				}
 			
 				$this->_compile_segments(explode('/', $val));