Index: /MediaWiki/trunk/FCKeditorSajax.body.php
===================================================================
--- /MediaWiki/trunk/FCKeditorSajax.body.php	(revision 3184)
+++ /MediaWiki/trunk/FCKeditorSajax.body.php	(revision 3185)
@@ -94,5 +94,5 @@
 
 function wfSajaxSearchArticleFCKeditor( $term ) {
-	global $wgContLang, $wgOut;
+	global $wgContLang, $wgOut, $wgExtraNamespaces;
 	$limit = 10;
 	$ns = NS_MAIN;
@@ -100,13 +100,32 @@
 	$term = $wgContLang->checkTitleEncoding( $wgContLang->recodeInput( js_unescape( $term ) ) );
 
-	if (strpos($term, "Category:") === 0) {
+	if (strpos(strtolower($term), "category:") === 0) {
 		$ns = NS_CATEGORY;
 		$term = substr($term, 9);
 		$prefix = "Category:";
 	}
-	else if (strpos($term, ":Category:") === 0) {
+	else if (strpos(strtolower($term), ":category:") === 0) {
 		$ns = NS_CATEGORY;
 		$term = substr($term, 10);
 		$prefix = ":Category:";
+	}
+	else if (strpos(strtolower($term), "media:") === 0) {
+		$ns = NS_IMAGE;
+		$term = substr($term, 6);
+		$prefix = "Media:";
+	}
+	else if (strpos(strtolower($term), ":image:") === 0) {
+		$ns = NS_IMAGE;
+		$term = substr(strtolower($term), 7);
+		$prefix = ":Image:";
+	}
+	else if ( strpos($term,":") && is_array($wgExtraNamespaces )) {
+		$pos = strpos($term,":");
+		$find_ns = array_search(substr($term,0,$pos),$wgExtraNamespaces);
+		if ($find_ns) {
+			$ns = $find_ns;
+			$prefix = substr($term,0,$pos+1);
+			$term = substr($term,$pos+1);
+		}
 	}
 
Index: /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html	(revision 3184)
+++ /MediaWiki/trunk/plugins/mediawiki/dialogs/link.html	(revision 3185)
@@ -193,11 +193,13 @@
 
 	// If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26)
+	var noTitle = false;
 	var aHasSelection = ( aLinks.length > 0 ) ;
 	if ( !aHasSelection )
 	{
-		sInnerHtml = sUri;
+		sInnerHtml = realUri;
+		noTitle = true;
 
 		var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ;
-		var asLinkPath = oLinkPathRegEx.exec( sUri ) ;
+		var asLinkPath = oLinkPathRegEx.exec( realUri ) ;
 		if (asLinkPath != null)
 			sInnerHtml = asLinkPath[1];  // use matched path
@@ -224,4 +226,6 @@
 			oLink.innerHTML = sInnerHtml ;		// Set (or restore) the innerHTML
 
+		if ( noTitle )
+			SetAttribute( oLink, '_fcknotitle','true');
 	}
 
Index: /MediaWiki/trunk/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 3184)
+++ /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 3185)
@@ -404,8 +404,10 @@
 							if (htmlNode.getAttribute( '_fcknotitle' ) && htmlNode.getAttribute( '_fcknotitle' ) == "true")
 							{
-								var testInner = FCKConfig.ProtectedSource.Revert(htmlNode.innerHTML, 0);
+								var testHref = FCKConfig.ProtectedSource.Revert(href, 0);
 								if (href.toLowerCase().StartsWith( 'category:' )) testInner = 'Category:'+testInner;
-								testInner = testInner.replace(/&amp;/, "&")
-								if ( testInner == FCKConfig.ProtectedSource.Revert(href, 0) ) pipeline = false;
+								if (testHref.toLowerCase().StartsWith( 'rtecolon' ) )
+									testHref = testHref.replace( /rtecolon/, ":" ) ;
+								testInner = testInner.replace( /&amp;/, "&" ) ;
+								if ( testInner == testHref ) pipeline = false ;
 							}
 							if (href.toLowerCase().StartsWith( 'rtecolon' ))		//change 'rtecolon=' => ':' in links
