Index: wp-admin/includes/export.php
===================================================================
--- wp-admin/includes/export.php	(revision 17409)
+++ wp-admin/includes/export.php	(working copy)
@@ -26,19 +26,23 @@
 	global $wpdb, $post;
 
 	$defaults = array( 'content' => 'all', 'author' => false, 'category' => false,
-		'start_date' => false, 'end_date' => false, 'status' => false,
+		'start_date' => false, 'end_date' => false, 'status' => false, 'gzip' => false
 	);
 	$args = wp_parse_args( $args, $defaults );
 
 	do_action( 'export_wp' );
 
 	$sitename = sanitize_key( get_bloginfo( 'name' ) );
-	if ( ! empty($sitename) ) $sitename .= '.';
+	if ( ! empty($sitename) ) 
+		$sitename .= '.';
 	$filename = $sitename . 'wordpress.' . date( 'Y-m-d' ) . '.xml';
+	if( $args['gzip'] )
+		$filename .= '.gz';
 
 	header( 'Content-Description: File Transfer' );
 	header( 'Content-Disposition: attachment; filename=' . $filename );
-	header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ), true );
+	$content_type = $args['gzip'] ? 'application/x-gzip' : 'text/xml';
+	header( "Content-Type: $content_type; charset=" . get_option( 'blog_charset' ), true );
 
 	if ( 'all' != $args['content'] && post_type_exists( $args['content'] ) ) {
 		$ptype = get_post_type_object( $args['content'] );
@@ -287,6 +291,13 @@
 			echo "\t\t<category domain=\"{$term->taxonomy}\" nicename=\"{$term->slug}\">" . wxr_cdata( $term->name ) . "</category>\n";
 		}
 	}
+	
+	function export_gzip_handler( $buffer ) {
+		return gzencode( $buffer ); 
+	}
+	
+	if( $args['gzip'] )
+		ob_start( 'export_gzip_handler' );
 
 	echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . "\" ?>\n";
 
@@ -413,4 +424,4 @@
 </channel>
 </rss>
 <?php
-}
+}
\ No newline at end of file
Index: wp-admin/export.php
===================================================================
--- wp-admin/export.php	(revision 17409)
+++ wp-admin/export.php	(working copy)
@@ -83,6 +83,9 @@
 	} else {
 		$args['content'] = $_GET['content'];
 	}
+	
+	if( isset( $_GET['gzip'] ) )
+		$args['gzip'] = true;
 
 	export_wp( $args );
 	die();
@@ -199,8 +202,11 @@
 <p><label><input type="radio" name="content" value="<?php echo esc_attr( $post_type->name ); ?>" /> <?php echo esc_html( $post_type->label ); ?></label></p>
 <?php endforeach; ?>
 
+<h3><?php _e( 'Compression' ); ?></h3>
+<p><label><input type="checkbox" name="gzip" value="gzip" /> <?php _e( 'Compress the XML file using gzip compression (this will create a smaller file for download)' ); ?></label></p>
+
 <?php submit_button( __('Download Export File'), 'secondary' ); ?>
 </form>
 </div>
 
-<?php include('admin-footer.php'); ?>
+<?php include('admin-footer.php'); ?>
\ No newline at end of file
