Index: wordpress/wp-includes/functions.php
===================================================================
--- wordpress/wp-includes/functions.php	(revision 19572)
+++ wordpress/wp-includes/functions.php	(working copy)
@@ -1428,6 +1428,7 @@
  * @param mixed $param1 Either newkey or an associative_array
  * @param mixed $param2 Either newvalue or oldquery or uri
  * @param mixed $param3 Optional. Old query or uri
+ * @param bool $encode Optional.  If true, values will be rawurlencode()'d
  * @return string New URL query string.
  */
 function add_query_arg() {
@@ -1477,9 +1478,14 @@
 	$qs = urlencode_deep( $qs ); // this re-URL-encodes things that were already in the query string
 	if ( is_array( func_get_arg( 0 ) ) ) {
 		$kayvees = func_get_arg( 0 );
+		if ( true === @func_get_arg( 3 ) )
+			$kayvees = array_map( 'rawurlencode', $kayvees );
 		$qs = array_merge( $qs, $kayvees );
 	} else {
-		$qs[func_get_arg( 0 )] = func_get_arg( 1 );
+		if ( true === @func_get_arg( 3 ) )
+			$qs[func_get_arg( 0 )] = rawurlencode( func_get_arg( 1 ) );
+		else
+			$qs[func_get_arg( 0 )] = func_get_arg( 1 );
 	}
 
 	foreach ( (array) $qs as $k => $v ) {
