Index: wp-includes/formatting.php
===================================================================
--- wp-includes/formatting.php	(revision 30976)
+++ wp-includes/formatting.php	(working copy)
@@ -264,6 +264,11 @@
 		} elseif ( '[' === $first && 1 === preg_match( '/^' . $shortcode_regex . '$/', $curl ) ) {
 			// This is a shortcode delimiter.
 
+			// Replace any curly quotes with straight quotes in shortcodes
+			$quote_search = array( '“', '”', '‘', '’' );
+			$quote_replace = array( '"', '"', '\'', '\'' );
+			$curl = str_replace( $quote_search, $quote_replace, $curl );
+			
 			if ( '[[' !== substr( $curl, 0, 2 ) && ']]' !== substr( $curl, -2 ) ) {
 				// Looks like a normal shortcode.
 				_wptexturize_pushpop_element( $curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes );
