Index: wp-includes/formatting.php
===================================================================
--- wp-includes/formatting.php	(revision 22318)
+++ wp-includes/formatting.php	(working copy)
@@ -1431,12 +1431,20 @@
  *
  * @since 2.2.0
  *
- * @param array|string $value The array or string to be encoded.
- * @return array|string $value The encoded array (or string from the callback).
+ * @param object|array|string $value The array or string to be encoded.
+ * @return object|array|string $value The encoded array (or string from the callback).
  */
-function urlencode_deep($value) {
-	$value = is_array($value) ? array_map('urlencode_deep', $value) : urlencode($value);
-	return $value;
+function urlencode_deep( $value ) {
+	if ( is_object( $value ) ) {
+		foreach( $value as $property => $property_value )
+			$value->{$property} = urlencode_deep( $property_value );
+		
+		return $value;
+	} else if ( is_array( $value ) ) {
+		return array_map( 'urlencode_deep', $value );
+	} else {
+		return urlencode( $value );
+	}
 }
 
 /**
@@ -1444,14 +1452,45 @@
  *
  * @since 3.4.0
  *
- * @param array|string $value The array or string to be encoded.
- * @return array|string $value The encoded array (or string from the callback).
+ * @param object|array|string $value The array or string to be encoded.
+ * @return object|array|string $value The encoded array (or string from the callback).
  */
 function rawurlencode_deep( $value ) {
-	return is_array( $value ) ? array_map( 'rawurlencode_deep', $value ) : rawurlencode( $value );
+	if ( is_object( $value ) ) {
+		foreach( $value as $property => $property_value )
+			$value->{$property} = rawurlencode_deep( $property_value );
+		
+		return $value;
+	} else if ( is_array( $value ) ) {
+		return array_map( 'rawurlencode_deep', $value );
+	} else {
+		return rawurlencode( $value );
+	}
 }
 
 /**
+ * Navigates through a urlencoded variable and decodes the values.
+ *
+ *
+ * @since 
+ *
+ * @param string $value The array or string to be encoded.
+ * @return object|array|string $value The encoded array (or string from the callback).
+ */
+function urldecode_deep( $value ) {
+	if ( is_object( $value ) ) {
+		foreach( $value as $property => $property_value )
+			$value->{$property} = urldecode_deep( $property_value );
+		
+		return $value;
+	} else if ( is_array( $value ) ) {
+		return array_map( 'urldecode_deep', $value );
+	} else {
+		return urldecode( $value );
+	}
+}
+
+/**
  * Converts email addresses characters to HTML entities to block spam bots.
  *
  * @since 0.71
