Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 15434)
+++ wp-includes/functions.php	(working copy)
@@ -1359,23 +1359,14 @@
  * @since 1.5.0
  *
  * @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 mixed $param2 Optional. Either newvalue or oldquery_or_uri
+ * @param mixed $param3 Optional. oldquery_or_uri
  * @return string New URL query string.
  */
-function add_query_arg() {
+function add_query_arg($param1, $param2 = false, $param3 = false) {
 	$ret = '';
-	if ( is_array( func_get_arg(0) ) ) {
-		if ( @func_num_args() < 2 || false === @func_get_arg( 1 ) )
-			$uri = $_SERVER['REQUEST_URI'];
-		else
-			$uri = @func_get_arg( 1 );
-	} else {
-		if ( @func_num_args() < 3 || false === @func_get_arg( 2 ) )
-			$uri = $_SERVER['REQUEST_URI'];
-		else
-			$uri = @func_get_arg( 2 );
-	}
+	$uri = is_array( $param1 ) ? $param2 : $param3;
+	false === $uri && ($uri = $_SERVER['REQUEST_URI']);
 
 	if ( $frag = strstr( $uri, '#' ) )
 		$uri = substr( $uri, 0, -strlen( $frag ) );
