Index: /CKEditor/trunk/_source/core/resourcemanager.js
===================================================================
--- /CKEditor/trunk/_source/core/resourcemanager.js	(revision 3068)
+++ /CKEditor/trunk/_source/core/resourcemanager.js	(revision 3069)
@@ -116,5 +116,5 @@
 	/**
 	 * Registers a resource to be loaded from an external path instead of the core base path.
-	 * @param {String} name The resource name.
+	 * @param {String} names The resource names, separated by commas.
 	 * @param {String} path The resource external path.
 	 * @example
@@ -122,10 +122,15 @@
 	 * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
 	 */
-	addExternal : function( name, path )
-	{
-		if ( this.registered[ name ] || this.externals[ name ] )
-			throw '[CKEDITOR.resourceManager.import] The resource name "' + name + '" is already registered or imported.';
-
-		this.externals[ name ] = path;
+	addExternal : function( names, path )
+	{
+		names = names.split( ',' );
+		for ( var i = 0 ; i < names.length ; i++ )
+		{
+			var name = names[ i ];
+			if ( this.registered[ name ] || this.externals[ name ] )
+				throw '[CKEDITOR.resourceManager.import] The resource name "' + name + '" is already registered or imported.';
+
+			this.externals[ name ] = path;
+		}
 	},
 
@@ -170,5 +175,7 @@
 				var url = CKEDITOR.getUrl( this.getPath( name ) + this.fileName + '.js' );
 				urls.push( url );
-				urlsNames[ url ] = name;
+				if ( !( url in urlsNames ) )
+					urlsNames[ url ] = [];
+				urlsNames[ url ].push( name );
 			}
 			else
@@ -179,12 +186,19 @@
 			{
 				if ( failed.length )
-					throw '[CKEDITOR.resourceManager.load] Resource name "' + urlsNames[ failed[ 0 ] ] + '" was not found at "' + failed[ 0 ] + '".';
+				{
+					throw '[CKEDITOR.resourceManager.load] Resource name "' + urlsNames[ failed[ 0 ] ].join( ',' )
+						+ '" was not found at "' + failed[ 0 ] + '".';
+				}
 
 				for ( var i = 0 ; i < completed.length ; i++ )
 				{
-					var name = urlsNames[ completed[ i ] ];
-					resources[ name ] = this.get( name );
-
-					loaded[ name ] = 1;
+					var nameList = urlsNames[ completed[ i ] ];
+					for ( var j = 0 ; j < nameList.length ; j++ )
+					{
+						var name = nameList[ j ];
+						resources[ name ] = this.get( name );
+
+						loaded[ name ] = 1;
+					}
 				}
 
