Index: wp-includes/formatting.php
===================================================================
--- wp-includes/formatting.php	(revision 18474)
+++ wp-includes/formatting.php	(working copy)
@@ -807,7 +807,7 @@
 }
 
 /**
- * Sanitizes title, replacing whitespace with dashes.
+ * Sanitizes title, replacing whitespace and a few other characters with dashes.
  *
  * Limits the output to alphanumeric characters, underscore (_) and dash (-).
  * Whitespace becomes a dash.
@@ -836,6 +836,12 @@
 	$title = strtolower($title);
 	$title = preg_replace('/&.+?;/', '', $title); // kill entities
 	$title = str_replace('.', '-', $title);
+
+	// ndash and mdash
+	$title = str_replace( array( '%e2%80%93', '%e2%80%94' ), '-', $title );
+	// curly quotes and hellip
+	$title = str_replace( array( '%e2%80%9c', '%e2%80%9d', '%e2%80%98', '%e2%80%99', '%e2%80%a6' ), '', $title );
+
 	$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
 	$title = preg_replace('/\s+/', '-', $title);
 	$title = preg_replace('|-+|', '-', $title);
