Index: canonical.php
===================================================================
--- canonical.php	(revision 20059)
+++ canonical.php	(working copy)
@@ -280,7 +280,7 @@
 				unset( $_parsed_query['name'] );
 		}
 
-		$_parsed_query = array_map( 'rawurlencode', $_parsed_query );
+		array_walk_recursive( $_parsed_query, 'rawurlencode_callback' );
 		$redirect_url = add_query_arg( $_parsed_query, $redirect_url );
 	}
 
@@ -495,3 +495,7 @@
 }
 
 add_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
+
+function rawurlencode_callback(&$string, $key = null) {
+	$string = rawurlencode($string);
+}
