Index: wp-includes/default-filters.php
===================================================================
--- wp-includes/default-filters.php	(revision 15375)
+++ wp-includes/default-filters.php	(working copy)
@@ -88,7 +88,7 @@
 
 // Format WordPress
 foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $filter )
-	add_filter( $filter, 'capital_P_dangit' );
+	add_filter( $filter, 'capital_P_dangit', 11 );
 
 // Format titles
 foreach ( array( 'single_post_title', 'single_cat_title', 'single_tag_title', 'single_month_title', 'nav_menu_attr_title', 'nav_menu_description' ) as $filter ) {
Index: wp-includes/formatting.php
===================================================================
--- wp-includes/formatting.php	(revision 15375)
+++ wp-includes/formatting.php	(working copy)
@@ -2825,8 +2825,20 @@
  *
  * @since 3.0.0
  */
+
 function capital_P_dangit( $text ) {
-	return str_replace( 'Wordpress', 'WordPress', $text );
+	// Simple replacement for titles
+	if ( 'the_title' === current_filter() )
+		return str_replace( 'Wordpress', 'WordPress', $text );
+	// Still here? Use the more judicious replacement
+	static $dblq = false;
+	if ( false === $dblq )
+		$dblq = _x('&#8220;', 'opening curly quote');
+	return str_replace(
+		array( ' Wordpress', '&#8216;Wordpress', $dblq . 'Wordpress', '>Wordpress', '(Wordpress' ),
+		array( ' WordPress', '&#8216;WordPress', $dblq . 'WordPress', '>WordPress', '(WordPress' ),
+	$text );
+
 }
 
 ?>
