diff --git a/core/includes/common.inc b/core/includes/common.inc
index 654d849..d8aaf7a 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -3116,7 +3116,19 @@ function drupal_clean_css_identifier($identifier, $filter = array(' ' => '-', '_
  *   The cleaned class name.
  */
 function drupal_html_class($class) {
-  return drupal_clean_css_identifier(drupal_strtolower($class));
+  // Use the advanced drupal_static() pattern, since this is called very often.
+  static $drupal_static_fast;
+  if (!isset($drupal_static_fast)) {
+    $drupal_static_fast['classes'] = &drupal_static(__FUNCTION__);
+  }
+  $classes = &$drupal_static_fast['classes'];
+  if (!isset($classes)) {
+    $classes = array();
+  }
+  if (!isset($classes[$class])) {
+    $classes[$class] = drupal_clean_css_identifier(drupal_strtolower($class));
+  }
+  return $classes[$class];
 }
 
 /**
