Index: wp-admin/import/wordpress.php
===================================================================
--- wp-admin/import/wordpress.php	(revision 8733)
+++ wp-admin/import/wordpress.php	(working copy)
@@ -105,7 +105,12 @@
 				// this doesn't check that the file is perfectly valid but will at least confirm that it's not the wrong format altogether
 				if ( !$is_wxr_file && preg_match('|xmlns:wp="http://wordpress[.]org/export/\d+[.]\d+/"|', $importline) )
 					$is_wxr_file = true;
-
+				
+				if ( false !== strpos($importline, '<wp:base_site_url>') ) {
+					preg_match('|<wp:base_site_url>(.*?)</wp:base_site_url>|is', $importline, $url);
+					$this->base_url = $url[1];
+					continue;
+				}
 				if ( false !== strpos($importline, '<wp:category>') ) {
 					preg_match('|<wp:category>(.*?)</wp:category>|is', $importline, $category);
 					$this->categories[] = $category[1];
@@ -539,6 +544,11 @@
 	function process_attachment($postdata, $remote_url) {
 		if ($this->fetch_attachments and $remote_url) {
 			printf( __('Importing attachment <em>%s</em>... '), htmlspecialchars($remote_url) );
+			
+			// If the URL is absolute, but does not contain http, upload it assuming the base_site_url variable
+			if ( preg_match('/^\/[\w\W]+$/', $remote_url) )
+				$remote_url = rtrim($this->base_url,'/').$remote_url;
+			
 			$upload = $this->fetch_remote_file($postdata, $remote_url);
 			if ( is_wp_error($upload) ) {
 				printf( __('Remote file error: %s'), htmlspecialchars($upload->get_error_message()) );
