Index: FCKeditorParser.body.php
===================================================================
--- FCKeditorParser.body.php	(wersja 2431)
+++ FCKeditorParser.body.php	(kopia robocza)
@@ -486,7 +486,8 @@
 					$this->fck_mw_strtr_span[$l] = substr($this->fck_mw_strtr_span[$l], 30, -7);
 				}
 			}
-			$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: mw12/FCKeditorParser_OldPP.body.php
===================================================================
--- mw12/FCKeditorParser_OldPP.body.php	(wersja 2431)
+++ mw12/FCKeditorParser_OldPP.body.php	(kopia robocza)
@@ -487,7 +487,8 @@
 					$this->fck_mw_strtr_span[$l] = substr($this->fck_mw_strtr_span[$l], 30, -7);
 				}
 			}
-			$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)) {
 			$text = $parserOutput->getText() ;
Index: plugins/mediawiki/dialogs/link.html
===================================================================
--- plugins/mediawiki/dialogs/link.html	(wersja 2431)
+++ plugins/mediawiki/dialogs/link.html	(kopia robocza)
@@ -69,6 +69,7 @@
 	if ( sHRef == null )
 		sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
 		
+	sHRef = FCKConfig.ProtectedSource.Revert(sHRef, 0);		//#2509
 	if (sHRef.toLowerCase().StartsWith( 'rtenotitle' ) )
 	{
 		sHRef = sHRef.substring(10);
@@ -186,6 +187,7 @@
 function Ok()
 {
 	var sUri = GetE('txtUrl').value ;
+	sUri  = FCKConfig.ProtectedSource.Protect(sUri);		//#2509
 	var realUri = sUri;
 	if ( bLinkEqualsName ) {
 		sUri = 'RTENOTITLE'+ sUri;
Index: plugins/mediawiki/dialogs/template.html
===================================================================
--- plugins/mediawiki/dialogs/template.html	(wersja 2431)
+++ plugins/mediawiki/dialogs/template.html	(kopia robocza)
@@ -99,6 +99,7 @@
 	if ( !oTemplateSpan ) return ;
 
 	var inputText = FCKTools.HTMLDecode(oTemplateSpan.innerHTML);
+	inputText = FCKConfig.ProtectedSource.Revert(inputText, 0);		//#2509
 	if (inputText.length>0 && inputText.indexOf('{{#')<0 && inputText.indexOf('{{:')<0 ) 
 	{
 		var templateName = inputText.substring(2,inputText.indexOf('fckLR'));
@@ -128,7 +129,8 @@
 		oTemplateSpan.className = 'fck_mw_template' ;
 	}
 	
-	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: plugins/mediawiki/fckplugin.js
===================================================================
--- plugins/mediawiki/fckplugin.js	(wersja 2431)
+++ plugins/mediawiki/fckplugin.js	(kopia robocza)
@@ -370,7 +370,7 @@
 							if (href.toLowerCase().StartsWith( 'rtenotitle' ))
 							{
 								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
 							{
