Index: /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 510)
+++ /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 511)
@@ -42,15 +42,6 @@
 	ConvertToHtml : function( data )
 	{
-		if ( FCK._MediaWiki_IsSwitchMode )
-		{
-			// Use Ajax to transform the Wikitext to HTML.
-			window.parent.sajax_do_call( 'wfSajaxWikiToHTML', [data], this._LoadHTMLFromAjax ) ; 
-			return 'Loading Wikitext. Please wait...' ;
-		}
-		else
-		{
-			// Call the original code.
-			return FCKDataProcessor.prototype.ConvertToHtml.call( this, data ) ;
-		}
+		// Call the original code.
+		return FCKDataProcessor.prototype.ConvertToHtml.call( this, data ) ;
 	},
 	
@@ -392,26 +383,33 @@
 		}
 		return attStr ;
-	},
-
-	_LoadHTMLFromAjax : function( result )
-	{
-		FCK.SetData( result.responseText ) ;
 	}
 } ;
 
-// This is tricky, but we need a flag that tell us that we are swithing modes
-// to properly handle the data in the above "ConvertToHtml".
+// Here we change the SwitchEditMode function to make the Ajax call when
+// switching from Wikitext.
 (function()
 {
 	var original = FCK.SwitchEditMode ;
-	
+
 	FCK.SwitchEditMode = function()
 	{
-		FCK._MediaWiki_IsSwitchMode = true ;
+		var args = arguments ;
 		
-		original.apply( FCK, arguments ) ;
+		var loadHTMLFromAjax = function( result )
+		{
+			FCK.EditingArea.Textarea.value = result.responseText ;
+			original.apply( FCK, args ) ;
+		}
 		
-		FCK._MediaWiki_IsSwitchMode = false ;
+		if ( FCK.EditMode == FCK_EDITMODE_SOURCE )
+		{
+			// Hide the textarea to avoid seeing the code change.
+			FCK.EditingArea.Textarea.style.visibility = 'hidden' ;
+
+			// Use Ajax to transform the Wikitext to HTML.
+			window.parent.sajax_do_call( 'wfSajaxWikiToHTML', [FCK.EditingArea.Textarea.value], loadHTMLFromAjax ) ;
+		}
+		else
+			original.apply( FCK, args ) ;
 	}
-	
 })() ;
