Index: wp-admin/import/blogger.php
===================================================================
--- wp-admin/import/blogger.php	(revision 14740)
+++ wp-admin/import/blogger.php	(working copy)
@@ -162,7 +162,7 @@
 					if ( $tag['tag'] == 'TITLE' ) {
 						$blog['title'] = $tag['value'];
 					} elseif ( $tag['tag'] == 'SUMMARY' ) {
-						$blog['summary'] = $tag['value'];
+						$blog['summary'] = ( isset( $tag['value'] ) ) ? $tag['value'] : '';
 					} elseif ( $tag['tag'] == 'LINK' ) {
 						if ( $tag['attributes']['REL'] == 'alternate' && $tag['attributes']['TYPE'] == 'text/html' ) {
 							$parts = parse_url( $tag['attributes']['HREF'] );
@@ -205,6 +205,8 @@
 		$posts    = __('Posts');
 		$comments = __('Comments');
 		$noscript = __('This feature requires Javascript but it seems to be disabled. Please enable Javascript and then reload this page. Don&#8217;t worry, you can turn it back off when you&#8217;re done.');
+		$init     = '';
+		$rows     = '';
 
 		$interval = STATUS_INTERVAL * 1000;
 
@@ -499,9 +501,11 @@
 						if ( preg_match('/rel=.previous./', $match) )
 							$query = @html_entity_decode( preg_replace('/^.*href=[\'"].*\?(.+)[\'"].*$/', '$1', $match), ENT_COMPAT, get_option('blog_charset') );
 
-				parse_str($query, $q);
-
-				$this->blogs[$importing_blog]['comments_start_index'] = (int) $q['start-index'];
+				if ( $query ) {
+					parse_str($query, $q);
+					$this->blogs[$importing_blog]['comments_start_index'] = (int) $q['start-index'];
+				} else
+					$this->blogs[$importing_blog]['comments_start_index'] = 0;
 				$this->save_vars();
 			} while ( !empty( $query ) && $this->have_time() );
 		}
@@ -582,6 +586,9 @@
 			add_post_meta( $post_id, 'blogger_permalink', $entry->old_permalink, true );
 
 			$this->blogs[$importing_blog]['posts'][$entry->old_permalink] = $post_id;
+			if( !isset( $this->blogs[$importing_blog]['posts_done'] ) ) {
+				$this->blogs[$importing_blog]['posts_done'] = 0;
+			}
 			++$this->blogs[$importing_blog]['posts_done'];
 		}
 		$this->save_vars();
@@ -602,7 +609,7 @@
 		}
 
 		$comment_post_ID = (int) $this->blogs[$importing_blog]['posts'][$entry->old_post_permalink];
-		preg_match('#<name>(.+?)</name>.*(?:\<uri>(.+?)</uri>)?#', $entry->author, $matches);
+		preg_match('#<name>(.+?)</name>.*?(?:\<uri>(.+?)</uri>)?#', $entry->author, $matches);
 		$comment_author  = addslashes( $this->no_apos( strip_tags( (string) $matches[1] ) ) );
 		$comment_author_url = addslashes( $this->no_apos( strip_tags( (string) $matches[2] ) ) );
 		$comment_date    = $this->convert_date( $entry->updated );
@@ -627,6 +634,10 @@
 
 			$this->blogs[$importing_blog]['comments'][$entry->old_permalink] = $comment_id;
 
+			if( !isset( $this->blogs[$importing_blog]['comments_done'] ) ) {
+				$this->blogs[$importing_blog]['comments_done'] = 0;
+			}
+
 			++$this->blogs[$importing_blog]['comments_done'];
 		}
 		$this->save_vars();
@@ -665,6 +676,7 @@
 		$mapthis = __('Blogger username');
 		$tothis = __('WordPress login');
 		$submit = esc_js( __('Save Changes') );
+		$rows = '';
 
 		foreach ( $blog['authors'] as $i => $author )
 			$rows .= "<tr><td><label for='authors[$i]'>{$author[0]}</label></td><td><select name='authors[$i]' id='authors[$i]'>" . $this->get_user_options($author[1]) . "</select></td></tr>";
@@ -674,6 +686,7 @@
 
 	function get_user_options($current) {
 		global $importer_users;
+		$options = '';
 		if ( ! isset( $importer_users ) )
 			$importer_users = (array) get_users_of_blog();
 
@@ -743,6 +756,7 @@
 	}
 
 	function _txrx( $sock, $request ) {
+		$response = '';
 		fwrite( $sock, $request );
 		while ( ! feof( $sock ) )
 			$response .= @ fread ( $sock, 8192 );
@@ -787,11 +801,14 @@
 		$response_header_array = array();
 		foreach($response_header_lines as $header_line) {
 			list($header,$value) = explode(': ', $header_line, 2);
-			$response_header_array[$header] .= $value."\n";
+			$response_header_array[$header] = $value."\n";
 		}
 
 		$cookie_array = array();
-		$cookies = explode("\n", $response_header_array["Set-Cookie"]);
+		$cookies = array();
+		if( isset($response_header_array["Set-Cookie"]) ) {
+			$cookies = explode("\n", $response_header_array["Set-Cookie"]);
+		}
 		foreach($cookies as $this_cookie) { array_push($cookie_array, "Cookie: ".$this_cookie); }
 
 		return array("code" => $response_code, "header" => $response_header_array, "cookies" => $cookie_array, "body" => $response_body);
@@ -983,7 +1000,13 @@
 			array_push($this->in_content, "<". $this->ns_to_prefix($name) ."{$xmlns_str}{$attrs_str}");
 		} else if (in_array($tag, $this->ATOM_CONTENT_ELEMENTS) || in_array($tag, $this->ATOM_SIMPLE_ELEMENTS)) {
 			$this->in_content = array();
-			$this->is_xhtml = $attrs['type'] == 'xhtml';
+			
+			if( isset( $attrs['type'] ) ) {
+				$this->is_xhtml = $attrs['type'] == 'xhtml';
+			} else {
+				$this->is_xhtml = false;
+			}
+
 			array_push($this->in_content, array($tag,$this->depth));
 		} else if ($tag == 'link') {
 			array_push($this->entry->links, $attrs);
@@ -1036,8 +1059,13 @@
 	function cdata($parser, $data) {
 		#print str_repeat(" ", $this->depth * $this->indent) . "data: #" . $data . "#\n";
 		if (!empty($this->in_content)) {
+			$in_content = $this->in_content[count($this->in_content)-1];
+			if( is_array( $in_content ) ) {
+				$in_content = $in_content[0];
+			}
+
 			// handle self-closing tags (case: text node found, need to close element started)
-			if (strpos($this->in_content[count($this->in_content)-1], '<') !== false) {
+			if (strpos($in_content, '<') !== false) {
 				array_push($this->in_content, ">");
 			}
 			array_push($this->in_content, $this->xml_escape($data));
