Index: /MediaWiki/trunk/FCKeditorParser.body.php
===================================================================
--- /MediaWiki/trunk/FCKeditorParser.body.php	(revision 2434)
+++ /MediaWiki/trunk/FCKeditorParser.body.php	(revision 2435)
@@ -487,5 +487,6 @@
 				}
 			}
-			$parserOutput->setText(strtr($parserOutput->getText(), $this->fck_mw_strtr_span));
+			$text = strtr($parserOutput->getText(), $this->fck_mw_strtr_span);
+			$parserOutput->setText(strtr($text, $this->fck_mw_strtr_span));
 		}
 
Index: /MediaWiki/trunk/mw12/FCKeditorParser_OldPP.body.php
===================================================================
--- /MediaWiki/trunk/mw12/FCKeditorParser_OldPP.body.php	(revision 2434)
+++ /MediaWiki/trunk/mw12/FCKeditorParser_OldPP.body.php	(revision 2435)
@@ -488,5 +488,6 @@
 				}
 			}
-			$parserOutput->setText(strtr($parserOutput->getText(), $this->fck_mw_strtr_span));
+			$text = strtr($parserOutput->getText(), $this->fck_mw_strtr_span);
+			$parserOutput->setText(strtr($text, $this->fck_mw_strtr_span));
 		}
 		if (!empty($this->fck_matches)) {
Index: /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html	(revision 2434)
+++ /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html	(revision 2435)
@@ -70,4 +70,5 @@
 		sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
 		
+	sHRef = FCKConfig.ProtectedSource.Revert(sHRef, 0);		//#2509
 	if (sHRef.toLowerCase().StartsWith( 'rtenotitle' ) )
 	{
@@ -187,4 +188,5 @@
 {
 	var sUri = GetE('txtUrl').value ;
+	sUri  = FCKConfig.ProtectedSource.Protect(sUri);		//#2509
 	var realUri = sUri;
 	if ( bLinkEqualsName ) {
Index: /MediaWiki/trunk/plugins/mediawiki/dialogs/template.html
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/dialogs/template.html	(revision 2434)
+++ /MediaWiki/trunk/plugins/mediawiki/dialogs/template.html	(revision 2435)
@@ -100,4 +100,5 @@
 
 	var inputText = FCKTools.HTMLDecode(oTemplateSpan.innerHTML);
+	inputText = FCKConfig.ProtectedSource.Revert(inputText, 0);		//#2509
 	if (inputText.length>0 && inputText.indexOf('{{#')<0 && inputText.indexOf('{{:')<0 ) 
 	{
@@ -129,5 +130,6 @@
 	}
 	
-	var templateData = FCKTools.HTMLEncode(GetE('xTemplateRaw').value.Trim().replace(/(\r\n|\n)/g, 'fckLR')).replace( /"/g, '&quot;' ) ;
+	var protectedValue = FCKConfig.ProtectedSource.Protect(GetE('xTemplateRaw').value);
+	var templateData = FCKTools.HTMLEncode(protectedValue.toString().Trim().replace(/(\r\n|\n)/g, 'fckLR')).replace( /"/g, '&quot;' ) ;
 	
 	if ( !( /^{{[\s\S]+}}$/.test( templateData ) ) )
Index: /MediaWiki/trunk/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 2434)
+++ /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 2435)
@@ -371,5 +371,5 @@
 							{
 								href = href.substring(10);
-								if ( htmlNode.innerHTML == href ) pipeline = false;
+								if ( FCKConfig.ProtectedSource.Revert(htmlNode.innerHTML, 0) == FCKConfig.ProtectedSource.Revert(href, 0) ) pipeline = false;
 							}
 							if (href.toLowerCase().StartsWith( 'rtecolon' ))		//change 'rtecolon=' => ':' in links
