Index: /CKEditor/trunk/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 3320)
+++ /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 3321)
@@ -2611,4 +2611,6 @@
 				return dialog;
 			}
+			else if ( dialogDefinitions == 'failed' )
+				throw new Error( '[CKEDITOR.dialog.openDialog] Dialog "' + dialogName + '" failed when loading definition.' );
 
 			// Not loaded? Load the .js file first.
@@ -2620,4 +2622,7 @@
 			CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), function()
 				{
+					// In case of plugin error, mark it as loading failed. 
+					if ( typeof CKEDITOR.dialog._.dialogDefinitions[ dialogName ] != 'function' )
+							CKEDITOR.dialog._.dialogDefinitions[ dialogName ] =  'failed';
 					me.openDialog( dialogName );
 					body.setStyle( 'cursor', cursor );
