diff --git a/includes/common.inc b/includes/common.inc
index 63b691e..e4192da 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -7331,7 +7331,10 @@ function drupal_parse_info_format($data) {
   $info = array();
   $constants = get_defined_constants();
 
-  if (preg_match_all('
+  $matches = array();
+  foreach (explode('
+', $data) as $line) {
+    if (preg_match('
     @^\s*                           # Start at the beginning of a line, ignoring leading whitespace
     ((?:
       [^=;\[\]]|                    # Key names cannot contain equal signs, semi-colons or square brackets,
@@ -7343,7 +7346,12 @@ function drupal_parse_info_format($data) {
       (\'(?:[^\']|(?<=\\\\)\')*\')| # Single-quoted string, which may contain slash-escaped quotes/slashes
       ([^\r\n]*?)                   # Non-quoted string
     )\s*$                           # Stop at the next end of a line, ignoring trailing whitespace
-    @msx', $data, $matches, PREG_SET_ORDER)) {
+    @msx', $line, $line_matches)) {
+      $matches[] = $line_matches;
+    }
+  }
+
+  if (count($matches) > 0) {
     foreach ($matches as $match) {
       // Fetch the key and value string.
       $i = 0;
