Index: /MediaWiki/trunk/extensions/FCKeditor/FCKeditor.body.php
===================================================================
--- /MediaWiki/trunk/extensions/FCKeditor/FCKeditor.body.php	(revision 509)
+++ /MediaWiki/trunk/extensions/FCKeditor/FCKeditor.body.php	(revision 510)
@@ -291,4 +291,5 @@
 addOnloadHook( onLoadFCKeditor ) ;
 
+/*
 function showSource() {
     var wp = document.getElementById("wpDiff");
@@ -320,4 +321,5 @@
 
 addOnloadHook(showSource);
+*/
 </script>        
 HEREDOC;
Index: /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 509)
+++ /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 510)
@@ -42,8 +42,17 @@
 	ConvertToHtml : function( data )
 	{
-		// Call the original code.
-		return FCKDataProcessor.prototype.ConvertToHtml.call( this, 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 ) ;
+		}
+	},
+	
 	/*
 	 * Converts a DOM (sub-)tree to a string in the data format.
@@ -383,4 +392,26 @@
 		}
 		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".
+(function()
+{
+	var original = FCK.SwitchEditMode ;
+	
+	FCK.SwitchEditMode = function()
+	{
+		FCK._MediaWiki_IsSwitchMode = true ;
+		
+		original.apply( FCK, arguments ) ;
+		
+		FCK._MediaWiki_IsSwitchMode = false ;
+	}
+	
+})() ;
