Index: zen/template.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/themes/zen/zen/template.php,v
retrieving revision 1.55
diff -u -p -r1.55 template.php
--- zen/template.php	19 Jun 2009 19:17:58 -0000	1.55
+++ zen/template.php	26 Jun 2009 17:43:58 -0000
@@ -165,6 +165,36 @@ function zen_preprocess_page(&$vars, $ho
   }
   $vars['body_classes_array'] = $classes;
   $vars['body_classes'] = implode(' ', $classes); // Concatenate with spaces.
+  
+  /**
+   * Solve 30 CSS files limit in Internet Explorer.
+   * Taken from http://drupal.org/node/228818#comment-1473586
+   */
+  $preprocess_css = variable_get('preprocess_css', 0);
+  if (!$preprocess_css) {
+    $styles = '';
+    foreach ($vars['css'] as $media => $types) {
+      $import = '';
+      $counter = 0;
+      foreach ($types as $files) {
+        foreach ($files as $css => $preprocess) {
+          $import .= '@import "'. base_path() . $css .'";'."\n";
+          $counter++;
+          if ($counter == 15) {
+            $styles .= "\n".'<style type="text/css" media="'. $media .'">'."\n". $import .'</style>';
+            $import = ''; 
+            $counter = 0;
+          }
+        }
+      }
+      if ($import) {
+        $styles .= "\n".'<style type="text/css" media="'. $media .'">'."\n". $import .'</style>';
+      }
+    }
+    if ($styles) {
+      $vars['styles'] = $styles; 
+    } 
+  }
 }
 
 /**
