Index: wp-includes/canonical.php
===================================================================
--- wp-includes/canonical.php	(revision 12596)
+++ wp-includes/canonical.php	(working copy)
@@ -262,7 +262,7 @@
 
 	$compare_original = array($original['host'], $original['path']);
 
-	if ( !empty( $original['port'] ) )
+	if ( !empty( $original['port'] ) && $original['port'] != 80 )
 		$compare_original[] = $original['port'];
 
 	if ( !empty( $original['query'] ) )
@@ -285,7 +285,7 @@
 			$redirect_url .= '?' . $redirect['query'];
 	}
 
-	if ( $redirect_url == $requested_url )
+	if ( !$redirect_url || $redirect_url == $requested_url )
 		return false;
 
 	// Note that you can use the "redirect_canonical" filter to cancel a canonical redirect for whatever reason by returning FALSE
