diff --git a/system/libraries/Router.php b/system/libraries/Router.php
index 0603720..94a9a52 100644
--- a/system/libraries/Router.php
+++ b/system/libraries/Router.php
@@ -292,7 +292,7 @@
 			// If the URL has a question mark then it's simplest to just
 			// build the URI string from the zero index of the $_GET array.
 			// This avoids having to deal with $_SERVER variables, which
-			// can be unreliable on some servers
+			// can be unreliable in some environments
 			if (is_array($_GET) AND count($_GET) == 1)
 			{
 				return current(array_keys($_GET));
@@ -300,44 +300,38 @@
 		
 			// Is there a PATH_INFO variable?
 			// Note: some servers seem to have trouble with getenv() so we'll test it two ways		
-			$path_info = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : @getenv('PATH_INFO');	
+			$path = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : @getenv('PATH_INFO');	
+			if ($path != '' AND $path != "/".SELF)
+			{
+				return $path;
+			}
+					
+			// No PATH_INFO?... What about QUERY_STRING?
+			$path =  (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING');	
+			if ($path != '')
+			{
+				return $path;
+			}
 			
-			if ($path_info != '' AND $path_info != "/".SELF)
+			// No QUERY_STRING?... Maybe the ORIG_PATH_INFO variable exists?
+			$path = (isset($_SERVER['ORIG_PATH_INFO'])) ? $_SERVER['ORIG_PATH_INFO'] : @getenv('ORIG_PATH_INFO');	
+			if ($path != '' AND $path != "/".SELF)
 			{
-				return $path_info;
+				return $path;
 			}
-			else
+			
+			// OK, how about REQUEST_URI?  
+			// Note: REQUEST_URI is not supplied in a consistent manner with all platforms so it's
+			// a diffucult variable to use.  We'll try to parse it out correctly.  Hopfully one 
+			// of the other variables above was available.
+			$path = $this->_parse_request_uri();
+			if ($path != "")
 			{
-				// OK, how about REQUEST_URI?
-				$req_uri = $this->_parse_request_uri();
-				
-				if ($req_uri != "")
-				{
-					return $req_uri;
-				}
-				else
-				{
-					// Hm... maybe the ORIG_PATH_INFO variable exists?
-					$path_info = (isset($_SERVER['ORIG_PATH_INFO'])) ? $_SERVER['ORIG_PATH_INFO'] : @getenv('ORIG_PATH_INFO');	
-					if ($path_info != '' AND $path_info != "/".SELF)
-					{
-						return $path_info;
-					}
-					else
-					{
-						// At this point we've exhauseted all our options.
-						// Hopefully QUERY_STRING exists.  If not, there's nothing else we can try.
-						$query_string =  (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING');	
-						
-						if ($query_string != '')
-						{
-							return $query_string;
-						}
-						
-						return '';
-					}
-				}			
+				return $path;
 			}
+
+			// We've exhausted all our options...
+			return '';
 		}
 		else
 		{
@@ -373,7 +367,7 @@
 		
 		$request_uri = preg_replace("|/(.*)|", "\\1", str_replace("\\", "/", $_SERVER['REQUEST_URI']));
 
-		if ($request_uri == '' OR $request_uri == $this->config->item('index_page'))
+		if ($request_uri == '' OR $request_uri == SELF)
 		{
 			return '';
 		}