Index: wp-admin/includes/file.php
===================================================================
--- wp-admin/includes/file.php	(revision 21796)
+++ wp-admin/includes/file.php	(working copy)
@@ -1046,9 +1046,28 @@
 </table>
 
 <?php
+
+$array_print = create_function('$name, $arr, $func', '
+	foreach ( $arr as $k => $v ) {
+		if ( is_array( $v ) ) {
+			$func( $name . "[" . $k . "]", $v, $func );
+		} else {
+			echo "<input type=\"hidden\" name=\"";
+			echo esc_attr( $name ) . "[" . esc_attr( $k ) . "]\" ";
+			echo "value=\"";
+			echo esc_attr( stripslashes( $v ) );
+			echo "\" />";
+		}
+	}
+');
+
 foreach ( (array) $extra_fields as $field ) {
-	if ( isset( $_POST[ $field ] ) )
-		echo '<input type="hidden" name="' . esc_attr( $field ) . '" value="' . esc_attr( stripslashes( $_POST[ $field ] ) ) . '" />';
+	if ( isset( $_POST[ $field ] ) ) {
+		if ( is_array( $_POST[ $field ] ) )
+			$array_print( "$field", $_POST[ $field ], $array_print );
+		else
+			echo '<input type="hidden" name="' . esc_attr( $field ) . '" value="' . esc_attr( stripslashes( $_POST[ $field ] ) ) . '" />';	
+	}	
 }
 submit_button( __( 'Proceed' ), 'button', 'upgrade' );
 ?>
