Index: includes/resourceloader/ResourceLoader.php
===================================================================
--- includes/resourceloader/ResourceLoader.php	(revision 87657)
+++ includes/resourceloader/ResourceLoader.php	(working copy)
@@ -708,7 +708,8 @@
 	 * Convert an array of module names to a packed query string.
 	 * 
 	 * For example, array( 'foo.bar', 'foo.baz', 'bar.baz', 'bar.quux' )
-	 * becomes 'foo.bar,baz|bar.baz,quux'
+	 * becomes 'foo!bar,baz|bar!baz,quux'
+	 * The ! is for IE6 being stupid with extensions.
 	 * @param $modules array of module names (strings)
 	 * @return string Packed query string
 	 */
@@ -726,7 +727,8 @@
 			$p = $prefix === '' ? '' : $prefix . '.';
 			$arr[] = $p . implode( ',', $suffixes );
 		}
-		return implode( '|', $arr );
+		$str = implode( '|', $arr );
+		return str_replace( ".", "!", $str ); # bug 28840
 	}
 	
 	/**
Index: includes/resourceloader/ResourceLoaderContext.php
===================================================================
--- includes/resourceloader/ResourceLoaderContext.php	(revision 87657)
+++ includes/resourceloader/ResourceLoaderContext.php	(working copy)
@@ -67,12 +67,13 @@
 	/**
 	 * Expand a string of the form jquery.foo,bar|jquery.ui.baz,quux to
 	 * an array of module names like array( 'jquery.foo', 'jquery.bar',
-	 * 'jquery.ui.baz', 'jquery.ui.quux' )
+	 * 'jquery.ui.baz', 'jquery.ui.quux' ) Also translating ! to .
 	 * @param $modules String Packed module name list
 	 * @return array of module names
 	 */
 	public static function expandModuleNames( $modules ) {
 		$retval = array();
+		$modules = str_replace( "!", ".", $modules ); # bug 28840 - IE is stupid.
 		$exploded = explode( '|', $modules );
 		foreach ( $exploded as $group ) {
 			if ( strpos( $group, ',' ) === false ) {
Index: resources/mediawiki/mediawiki.js
===================================================================
--- resources/mediawiki/mediawiki.js	(revision 87657)
+++ resources/mediawiki/mediawiki.js	(working copy)
@@ -874,7 +874,7 @@
 				var p = prefix === '' ? '' : prefix + '.';
 				arr.push( p + moduleMap[prefix].join( ',' ) );
 			}
-			return arr.join( '|' );
+			return arr.join( '|' ).replace( /\./g, '!' );
 		}
 		
 
