Index: /Users/denis/Sites/sem-pro/wp-includes/shortcodes.php
===================================================================
--- /Users/denis/Sites/sem-pro/wp-includes/shortcodes.php	(revision 557)
+++ /Users/denis/Sites/sem-pro/wp-includes/shortcodes.php	(working copy)
@@ -162,12 +162,16 @@
  *
  * @return string The shortcode search regular expression
  */
-function get_shortcode_regex() {
+function get_shortcode_regex($backtrace = false) {
 	global $shortcode_tags;
 	$tagnames = array_keys($shortcode_tags);
 	$tagregexp = join( '|', array_map('preg_quote', $tagnames) );
-
-	return '\[('.$tagregexp.')\b(.*?)(?:(\/))?\](?:(.+?)\[\/\1\])?';
+	
+	if ( $backtrace ) {
+		return '\[('.$tagregexp.')\b(.*?)(?:(\/))?\](?:(.+?)\[\/\1\])?';
+	} else {
+		return '\[('.$tagregexp.')\b(?:.*?)?\](?:.+?\[\/\1\])?';
+	}
 }
 
 /**
@@ -182,7 +186,14 @@
  */
 function do_shortcode_tag($m) {
 	global $shortcode_tags;
-
+	
+	static $pattern;
+	
+	if ( !isset($pattern) )
+		$pattern = get_shortcode_regex(true);
+	
+	preg_match('/' . $pattern . '/s', $m[0], $m);
+	
 	$tag = $m[1];
 	$attr = shortcode_parse_atts($m[2]);
 

