Index: /CKEditor/branches/features/aria/_source/core/plugins.js
===================================================================
--- /CKEditor/branches/features/aria/_source/core/plugins.js	(revision 5061)
+++ /CKEditor/branches/features/aria/_source/core/plugins.js	(revision 5062)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -77,7 +77,34 @@
 	});
 
+/**
+ *  Used for lazy load an individual plugin's language file.
+ * @param pluginName
+ * @param callback
+ */
+CKEDITOR.editor.prototype.loadPluginLang = function( pluginName,  callback )
+{
+
+	var plugin = CKEDITOR.plugins.get( pluginName ),
+			langCode = this.langCode;
+
+	if( plugin.lang )
+		callback.apply( plugin );
+	else
+	{
+		CKEDITOR.scriptLoader.load(
+				CKEDITOR.getUrl( plugin.path + 'lang/' + langCode + '.js' ),
+				function()
+				{
+					CKEDITOR.tools.extend( this.lang, plugin.lang[ langCode ] );
+					callback.apply( plugin, arguments );
+				}, this )	;
+	}
+};
+
 CKEDITOR.plugins.setLang = function( pluginName, languageCode, languageEntries )
 {
-	var plugin = this.get( pluginName );
-	plugin.lang[ languageCode ] = languageEntries;
+	var plugin = this.get( pluginName ),
+			pluginLang = plugin.lang || ( plugin.lang = {} );
+
+	pluginLang[ languageCode ] = languageEntries;
 };
Index: /CKEditor/branches/features/aria/_source/plugins/a11yhelp/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/a11yhelp/plugin.js	(revision 5061)
+++ /CKEditor/branches/features/aria/_source/plugins/a11yhelp/plugin.js	(revision 5062)
@@ -8,26 +8,30 @@
  */
 
-CKEDITOR.plugins.add( 'a11yhelp',
+( function()
 {
-	init : function( editor )
+	var pluginName = 'a11yhelp',
+			commandName = 'a11yHelp';
+	
+	CKEDITOR.plugins.add( pluginName,
 	{
-		var plugin = this,
-			pluginLang = ( plugin.lang = [] );
+		init : function( editor )
+		{
+			editor.addCommand( commandName,
+			{
+				exec :	 function()
+				{
+					editor.loadPluginLang( pluginName, function()
+						{
+							editor.openDialog( commandName );
+						});
+				},
+				modes : { wysiwyg:1, source:1 },
+				canUndo : false
+			} );
 
-		editor.addCommand( 'a11yHelp',
-		{
-			exec :	 function()
-			{
-				CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( plugin.path + 'lang/default.js' ), function()
-					{
-						CKEDITOR.tools.extend( editor.lang, pluginLang[ editor.langCode ] || pluginLang[ 'en' ] );
-						editor.openDialog( 'a11yHelp' );
-					})	;
-			},
-			modes : { wysiwyg:1, source:1 },
-			canUndo : false
-		} );
+			CKEDITOR.dialog.add( commandName, this.path + 'dialogs/a11yhelp.js' );
+		}
+	});
 
-		CKEDITOR.dialog.add( 'a11yHelp', this.path + 'dialogs/a11yhelp.js' );
-	}
-});
+} )( );
+
