diff --git src/wp-includes/shortcodes.php src/wp-includes/shortcodes.php
index 0b2b732..cc48e88 100644
--- src/wp-includes/shortcodes.php
+++ src/wp-includes/shortcodes.php
@@ -289,11 +289,13 @@ function do_shortcode_tag( $m ) {
  * The attributes list has the attribute name as the key and the value of the
  * attribute as the value in the key/value pair. This allows for easier
  * retrieval of the attributes, since all attributes have to be known.
+ * Attributes not in key=value notation will be added to the list with a numerical key.
+ * If no attributes are passed in the shortcode, an empty string will be returned.
  *
  * @since 2.5.0
  *
  * @param string $text
- * @return array List of attributes and their value.
+ * @return array|string Array of attributes and their values, empty string if no attributes were passed.
  */
 function shortcode_parse_atts($text) {
 	$atts = array();
@@ -307,7 +309,7 @@ function shortcode_parse_atts($text) {
 				$atts[strtolower($m[3])] = stripcslashes($m[4]);
 			elseif (!empty($m[5]))
 				$atts[strtolower($m[5])] = stripcslashes($m[6]);
-			elseif (isset($m[7]) and strlen($m[7]))
+			elseif (isset($m[7]) && strlen($m[7]))
 				$atts[] = stripcslashes($m[7]);
 			elseif (isset($m[8]))
 				$atts[] = stripcslashes($m[8]);
