diff -Nur wordpress-2.7.1/wp-admin/import/blogger.php wordpress-devel/wp-admin/import/blogger.php
--- wordpress-2.7.1/wp-admin/import/blogger.php	2009-01-21 13:51:48.000000000 -0500
+++ wordpress-devel/wp-admin/import/blogger.php	2009-02-22 09:42:43.000000000 -0500
@@ -437,7 +437,7 @@
 				if ( count( $matches[1] ) )
 					foreach ( $matches[1] as $match )
 						if ( preg_match('/rel=.previous./', $match) )
-							$query = html_entity_decode( preg_replace('/^.*href=[\'"].*\?(.+)[\'"].*$/', '$1', $match) );
+							$query = html_entity_decode( preg_replace('/^.*href=[\'"].*\?(.+)[\'"].*$/', '$1', $match), ENT_COMPAT, get_option('blog_charset') );
 
 				if ( $query ) {
 					parse_str($query, $q);
@@ -495,7 +495,7 @@
 				if ( count( $matches[1] ) )
 					foreach ( $matches[1] as $match )
 						if ( preg_match('/rel=.previous./', $match) )
-							$query = html_entity_decode( preg_replace('/^.*href=[\'"].*\?(.+)[\'"].*$/', '$1', $match) );
+							$query = html_entity_decode( preg_replace('/^.*href=[\'"].*\?(.+)[\'"].*$/', '$1', $match), ENT_COMPAT, get_option('blog_charset') );
 
 				parse_str($query, $q);
 
@@ -545,7 +545,7 @@
 		}
 
 		$post_date    = $this->convert_date( $entry->published );
-		$post_content = trim( addslashes( $this->no_apos( html_entity_decode( $entry->content ) ) ) );
+		$post_content = trim( addslashes( $this->no_apos( html_entity_decode( $entry->content, ENT_COMPAT, get_option('blog_charset') ) ) ) );
 		$post_title   = trim( addslashes( $this->no_apos( $this->min_whitespace( $entry->title ) ) ) );
 		$post_status  = isset( $entry->draft ) ? 'draft' : 'publish';
 
@@ -600,7 +600,7 @@
 		$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 );
-		$comment_content = addslashes( $this->no_apos( html_entity_decode( $entry->content ) ) );
+		$comment_content = addslashes( $this->no_apos( html_entity_decode( $entry->content, ENT_COMPAT, get_option('blog_charset') ) ) );
 
 		// Clean up content
 		$comment_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $comment_content);
diff -Nur wordpress-2.7.1/wp-admin/includes/dashboard.php wordpress-devel/wp-admin/includes/dashboard.php
--- wordpress-2.7.1/wp-admin/includes/dashboard.php	2009-01-05 05:07:17.000000000 -0500
+++ wordpress-devel/wp-admin/includes/dashboard.php	2009-02-22 09:30:19.000000000 -0500
@@ -731,7 +731,7 @@
 			$title = $item['title'];
 		$title = wp_specialchars( $title );
 
-		$description = wp_specialchars( strip_tags(html_entity_decode($item['description'], ENT_QUOTES)) );
+		$description = wp_specialchars( strip_tags(html_entity_decode($item['description'], ENT_QUOTES, get_option('blog_charset'))) );
 
 		list($link, $frag) = explode( '#', $item['link'] );
 
diff -Nur wordpress-2.7.1/wp-includes/feed.php wordpress-devel/wp-includes/feed.php
--- wordpress-2.7.1/wp-includes/feed.php	2009-01-20 15:56:40.000000000 -0500
+++ wordpress-devel/wp-includes/feed.php	2009-02-22 09:39:37.000000000 -0500
@@ -340,7 +340,7 @@
 		elseif ( 'atom' == $type )
 			$the_list .= sprintf( '<category scheme="%1$s" term="%2$s" />', attribute_escape( apply_filters( 'get_bloginfo_rss', get_bloginfo( 'url' ) ) ), attribute_escape( $cat_name ) );
 		else
-			$the_list .= "\n\t\t<category><![CDATA[" . html_entity_decode( $cat_name ) . "]]></category>\n";
+			$the_list .= "\n\t\t<category><![CDATA[" . html_entity_decode( $cat_name, ENT_COMPAT, get_option('blog_charset') ) . "]]></category>\n";
 	}
 
 	return apply_filters('the_category_rss', $the_list, $type);
diff -Nur wordpress-2.7.1/wp-includes/widgets.php wordpress-devel/wp-includes/widgets.php
--- wordpress-2.7.1/wp-includes/widgets.php	2009-01-05 18:04:05.000000000 -0500
+++ wordpress-devel/wp-includes/widgets.php	2009-02-22 09:32:19.000000000 -0500
@@ -1508,7 +1508,7 @@
 	$link = clean_url(strip_tags($rss->channel['link']));
 	while ( strstr($link, 'http') != $link )
 		$link = substr($link, 1);
-	$desc = attribute_escape(strip_tags(html_entity_decode($rss->channel['description'], ENT_QUOTES)));
+	$desc = attribute_escape(strip_tags(html_entity_decode($rss->channel['description'], ENT_QUOTES, get_option('blog_charset'))));
 	$title = $options[$number]['title'];
 	if ( empty($title) )
 		$title = htmlentities(strip_tags($rss->channel['title']));
@@ -1577,9 +1577,9 @@
 				$title = __('Untitled');
 			$desc = '';
 			if ( isset( $item['description'] ) && is_string( $item['description'] ) )
-				$desc = str_replace(array("\n", "\r"), ' ', attribute_escape(strip_tags(html_entity_decode($item['description'], ENT_QUOTES))));
+				$desc = str_replace(array("\n", "\r"), ' ', attribute_escape(strip_tags(html_entity_decode($item['description'], ENT_QUOTES, get_option('blog_charset')))));
 			elseif ( isset( $item['summary'] ) && is_string( $item['summary'] ) )
-				$desc = str_replace(array("\n", "\r"), ' ', attribute_escape(strip_tags(html_entity_decode($item['summary'], ENT_QUOTES))));
+				$desc = str_replace(array("\n", "\r"), ' ', attribute_escape(strip_tags(html_entity_decode($item['summary'], ENT_QUOTES, get_option('blog_charset')))));
 			if ( 360 < strlen( $desc ) )
 				$desc = wp_html_excerpt( $desc, 360 ) . ' [&hellip;]';
 			$summary = $desc;
