Index: /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 612)
+++ /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 613)
@@ -299,5 +299,5 @@
 
 							var formula = htmlNode.getAttribute( '_fck_mw_math' ) ;
-							
+
 							if ( formula && formula.length > 0 )
 							{
@@ -370,5 +370,25 @@
 									stringBuilder.push( htmlNode.innerHTML ) ;
 									return ;
+
+								case 'fck_mw_nowiki' :
+									sNodeName = 'nowiki' ;
+									break ;
+
+								case 'fck_mw_includeonly' :
+									sNodeName = 'includeonly' ;
+									break ;
+
+								case 'fck_mw_noinclude' :
+									sNodeName = 'noinclude' ;
+									break ;
+
+								case 'fck_mw_onlyinclude' :
+									sNodeName = 'onlyinclude' ;
+									break ;
 							}
+
+							// Change the node name and fell in the "default" case.
+							if ( htmlNode.getAttribute( '_fck_mw_customtag' ) )
+								sNodeName = htmlNode.getAttribute( '_fck_mw_tagname' ) ;
 
 						default :
@@ -466,8 +486,13 @@
 				else if ( sAttName.indexOf( '_moz' ) == 0 )
 					continue ;
-				// There are one cases (on Gecko) when the oAttribute.nodeValue must be used:
-				//		- for the "class" attribute
+				// For "class", nodeValue must be used.
 				else if ( sAttName == 'class' )
-					sAttValue = oAttribute.nodeValue ;
+				{
+					// Get the class, removing any fckXXX we can have there.
+					sAttValue = oAttribute.nodeValue.replace( /(^|\s*)fck\S+/, '' ).Trim() ;
+
+					if ( sAttValue.length == 0 )
+						continue ;
+				}
 				// XHTML doens't support attribute minimization like "CHECKED". It must be trasformed to cheched="checked".
 				else if ( oAttribute.nodeValue === true )
