Index: /MediaWiki/trunk/FCKeditorParser.body.php
===================================================================
--- /MediaWiki/trunk/FCKeditorParser.body.php	(revision 2393)
+++ /MediaWiki/trunk/FCKeditorParser.body.php	(revision 2394)
@@ -307,6 +307,10 @@
 
 	function replaceInternalLinks( $text ) {
+		$text = preg_replace("/\[\[([^|\[\]]*?)\]\]/", "[[RTENOTITLE$1|$1]]", $text);	//#2223: [[()]]	=>	[[RTENOTITLE%1|%1]]
 		$text = preg_replace("/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text);	//change ':' => 'RTECOLON' in links
-		return parent::replaceInternalLinks($text);
+		$text = parent::replaceInternalLinks($text);
+		$text = preg_replace("/\[\[RTENOTITLE(.*?)\|/", "[[", $text);				// remove unused RTENOTITLE
+
+		return $text;
 	}
 
Index: /MediaWiki/trunk/mw12/FCKeditorParser_OldPP.body.php
===================================================================
--- /MediaWiki/trunk/mw12/FCKeditorParser_OldPP.body.php	(revision 2393)
+++ /MediaWiki/trunk/mw12/FCKeditorParser_OldPP.body.php	(revision 2394)
@@ -308,6 +308,10 @@
 
 	function replaceInternalLinks( $text ) {
+		$text = preg_replace("/\[\[([^|\[\]]*?)\]\]/", "[[RTENOTITLE$1|$1]]", $text);	//#2223: [[()]]	=>	[[RTENOTITLE%1|%1]]
 		$text = preg_replace("/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text);	//change ':' => 'RTECOLON' in links
-		return parent::replaceInternalLinks($text);
+		$text = parent::replaceInternalLinks($text);
+		$text = preg_replace("/\[\[RTENOTITLE(.*?)\|/", "[[", $text);				// remove unused RTENOTITLE
+
+		return $text;
 	}
 
Index: /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html	(revision 2393)
+++ /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html	(revision 2394)
@@ -70,4 +70,10 @@
 		sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
 		
+	if (sHRef.toLowerCase().StartsWith( 'rtenotitle' ) )
+	{
+		sHRef = sHRef.substring(10);
+		bLinkEqualsName = true;
+	}
+		
 	if ( sHRef == oLink.innerHTML )
 		bLinkEqualsName = true ;
@@ -181,4 +187,8 @@
 {
 	var sUri = GetE('txtUrl').value ;
+	var realUri = sUri;
+	if ( bLinkEqualsName ) {
+		sUri = 'RTENOTITLE'+ sUri;
+	}
 	if (sUri.StartsWith( ':' ) )
 		sUri = sUri.replace(/:/, "rtecolon");
@@ -216,5 +226,5 @@
 
 		if ( bLinkEqualsName )
-			oLink.innerHTML = sUri ;
+			oLink.innerHTML = realUri ;
 		else
 			oLink.innerHTML = sInnerHtml ;		// Set (or restore) the innerHTML
Index: /MediaWiki/trunk/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 2393)
+++ /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 2394)
@@ -345,4 +345,5 @@
 						case 'a' :
 
+							var pipeline = true;
 							// Get the actual Link href.
 							var href = htmlNode.getAttribute( '_fcksavedurl' ) ;
@@ -366,4 +367,10 @@
 								stringBuilder.push( isWikiUrl ? '[[' : '[' ) ;
 							}
+							//#2223
+							if (href.toLowerCase().StartsWith( 'rtenotitle' ))
+							{
+								href = href.substring(10);
+								if ( htmlNode.innerHTML == href ) pipeline = false;
+							}
 							if (href.toLowerCase().StartsWith( 'rtecolon' ))		//change 'rtecolon=' => ':' in links
 							{
@@ -372,5 +379,5 @@
 							}
 							stringBuilder.push( href ) ;
-							if ( htmlNode.innerHTML != '[n]' && (!isWikiUrl || href != htmlNode.innerHTML || !href.toLowerCase().StartsWith("category:")))
+							if ( pipeline && htmlNode.innerHTML != '[n]' && (!isWikiUrl || href != htmlNode.innerHTML || !href.toLowerCase().StartsWith("category:")))
 							{
 								stringBuilder.push( isWikiUrl? '|' : ' ' ) ;
