Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.756.2.80
diff -u -p -r1.756.2.80 common.inc
--- includes/common.inc	4 Mar 2010 00:25:13 -0000	1.756.2.80
+++ includes/common.inc	15 Apr 2010 14:44:13 -0000
@@ -1853,7 +1853,11 @@ function drupal_get_css($css = NULL) {
   // browser-caching. The string changes on every update or full cache
   // flush, forcing browsers to load a new copy of the files, as the
   // URL changed.
-  $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1);
+  // Allow the query string identifier to be skipped, can be a performance
+  // problem in certain circumstances.  See: http://drupal.org/node/721400
+  if (!variable_get('skip_css_js_query_string', FALSE)) {
+    $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1);
+  }
 
   foreach ($css as $media => $types) {
     // If CSS preprocessing is off, we still need to output the styles.
@@ -2208,7 +2212,11 @@ function drupal_get_js($scope = 'header'
   // URL changed. Files that should not be cached (see drupal_add_js())
   // get time() as query-string instead, to enforce reload on every
   // page request.
-  $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1);
+  // Allow the query string identifier to be skipped, can be a performance
+  // problem in certain circumstances.  See: http://drupal.org/node/721400
+  if (!variable_get('skip_css_js_query_string', FALSE)) {
+    $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1);
+  }
 
   // For inline Javascript to validate as XHTML, all Javascript containing
   // XHTML needs to be wrapped in CDATA. To make that backwards compatible
