diff --git a/wp-includes/functions.php b/wp-includes/functions.php
index 05acf4e..f5551cb 100644
--- a/wp-includes/functions.php
+++ b/wp-includes/functions.php
@@ -2585,25 +2585,45 @@
 /**
  * Merge user defined arguments into defaults array.
  *
- * This function is used throughout WordPress to allow for both string or array
- * to be merged into another array.
+ * This function is used throughout WordPress to allow for either a string or
+ * array to be merged into another array. It allows for arguments to be
+ * passively or aggressively filtered using the optional $filter_key parameter.
+ * If no $filter_key is passed, no filters are applied.
  *
  * @since 2.2.0
  *
  * @param string|array $args Value to merge with $defaults
- * @param array $defaults Array that serves as the defaults.
- * @return array Merged user defined values with defaults.
+ * @param array $defaults Array that serves as the defaults
+ * @param string $filter_key String to key the filters from
+ * @return array Merged user defined values with defaults
  */
-function wp_parse_args( $args, $defaults = '' ) {
-	if ( is_object( $args ) )
-		$r = get_object_vars( $args );
-	elseif ( is_array( $args ) )
-		$r =& $args;
-	else
-		wp_parse_str( $args, $r );
+function wp_parse_args( $args, $defaults = '', $filter_key = '' ) {
 
-	if ( is_array( $defaults ) )
-		return array_merge( $defaults, $r );
+	// Setup a temporary array from $args
+	if ( is_object( $args ) ) {
+		$r = get_object_vars( $args );
+	} elseif ( is_array( $args ) ) {
+		$r =& $args;
+	} else {
+		wp_parse_str( $args, $r );
+	}
+
+	// Passively filter the args before the parse
+	if ( !empty( $filter_key ) ) {
+		$r = apply_filters( 'wp_before_' . $filter_key . '_parse_args', $r );
+	}
+
+	// Parse
+	if ( is_array( $defaults ) && !empty( $defaults ) ) {
+		$r = array_merge( $defaults, $r );
+	}
+
+	// Aggressively filter the args after the parse
+	if ( !empty( $filter_key ) ) {
+		$r = apply_filters( 'wp_after_' . $filter_key . '_parse_args', $r );
+	}
+
+	// Return the parsed results
 	return $r;
 }
 
