Index: /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 951)
+++ /MediaWiki/trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js	(revision 952)
@@ -55,4 +55,6 @@
 FCK.DataProcessor =
 {
+	_inPre : false,
+
 	/*
 	 * Returns a string representing the HTML format of "data". The returned
@@ -167,4 +169,10 @@
 					return ;
 
+				if ( sNodeName == 'br' && FCK.DataProcessor._inPre )
+				{
+					stringBuilder.push( "\n" ) ;
+					return ;
+				}
+					
 				// Remove the <br> if it is a bogus node.
 				if ( sNodeName == 'br' && htmlNode.getAttribute( 'type', 2 ) == '_moz' )
@@ -401,4 +409,22 @@
 								sNodeName = htmlNode.getAttribute( '_fck_mw_tagname' ) ;
 
+						case 'pre' :
+							var attribs = this._GetAttributesStr( htmlNode ) ;
+
+							stringBuilder.push( '<' ) ;
+							stringBuilder.push( sNodeName ) ;
+
+							if ( attribs.length > 0 )
+								stringBuilder.push( attribs ) ;
+
+							stringBuilder.push( '>' ) ;
+							FCK.DataProcessor._inPre = true ;
+							this._AppendChildNodes( htmlNode, stringBuilder ) ;
+							FCK.DataProcessor._inPre = false ;
+							stringBuilder.push( '<\/' ) ;
+							stringBuilder.push( sNodeName ) ;
+							stringBuilder.push( '>' ) ;
+						
+							break ;
 						default :
 							var attribs = this._GetAttributesStr( htmlNode ) ;
