diff --git wp-includes/link-template.php wp-includes/link-template.php
index 7c5f511..bf3d009 100644
--- wp-includes/link-template.php
+++ wp-includes/link-template.php
@@ -1403,6 +1403,10 @@ function get_pagenum_link($pagenum = 1) {
 		$qs_regex = '|\?.*?$|';
 		preg_match( $qs_regex, $request, $qs_match );
 
+		$parts = array();
+
+		$parts[] = untrailingslashit( get_bloginfo( 'url' ) );
+
 		if ( !empty( $qs_match[0] ) ) {
 			$query_string = $qs_match[0];
 			$request = preg_replace( $qs_regex, '', $request );
@@ -1414,16 +1418,19 @@ function get_pagenum_link($pagenum = 1) {
 		$request = preg_replace( '|^index\.php|', '', $request);
 		$request = ltrim($request, '/');
 
-		$base = trailingslashit( get_bloginfo( 'url' ) );
-
 		if ( $wp_rewrite->using_index_permalinks() && ( $pagenum > 1 || '' != $request ) )
-			$base .= 'index.php/';
+			$parts[] = 'index.php';
+
+		$parts[] = untrailingslashit( $request );
 
 		if ( $pagenum > 1 ) {
-			$request = ( ( !empty( $request ) ) ? trailingslashit( $request ) : $request ) . user_trailingslashit( $wp_rewrite->pagination_base . "/" . $pagenum, 'paged' );
+			$parts[] = $wp_rewrite->pagination_base;
+			$parts[] = $pagenum;
 		}
 
-		$result = $base . $request . $query_string;
+		$parts[] = $query_string;
+
+		$result = user_trailingslashit( implode( '/', array_filter( $parts ) ), 'paged' );
 	}
 
 	$result = apply_filters('get_pagenum_link', $result);
