Index: /CKEditor/branches/features/bbcode/_source/plugins/bbcode/plugin.js
===================================================================
--- /CKEditor/branches/features/bbcode/_source/plugins/bbcode/plugin.js	(revision 6700)
+++ /CKEditor/branches/features/bbcode/_source/plugins/bbcode/plugin.js	(revision 6701)
@@ -889,10 +889,21 @@
 					filters.push( function( element )
 						{
-							return element.getName() in tagnameMap;
-						} );
-
-				  // User friendly presentation as BBCode names.
-				  if ( map = editor._.elementsPath.nameMap )
-					  CKEDITOR.tools.extend( map, tagnameMap, true );
+							var htmlName = element.getName(),
+								name = tagnameMap[ htmlName ] || false;
+
+							// Specialized anchor presents as email.
+							if ( name == 'link' && element.getAttribute( 'href' ).indexOf( 'mailto:' ) == 0 )
+								name = 'email';
+							// Styled span could be either size or color.
+							else if ( htmlName == 'span' )
+							{
+								if ( element.getStyle( 'font-size' ) )
+									name = 'size';
+								else if ( element.getStyle( 'color' ) )
+									name = 'color';
+							}
+
+							return name;
+						});
 			  }
 		  }
Index: /CKEditor/branches/features/bbcode/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/branches/features/bbcode/_source/plugins/elementspath/plugin.js	(revision 6700)
+++ /CKEditor/branches/features/bbcode/_source/plugins/elementspath/plugin.js	(revision 6701)
@@ -46,5 +46,5 @@
 			var idBase = 'cke_elementspath_' + CKEDITOR.tools.getNextNumber() + '_';
 
-			editor._.elementsPath = { idBase : idBase, filters : [], nameMap: {} };
+			editor._.elementsPath = { idBase : idBase, filters : [] };
 
 			editor.on( 'themeSpace', function( event )
@@ -120,17 +120,25 @@
 						editor = ev.editor,
 						elementsList = editor._.elementsPath.list = [],
-						filters = editor._.elementsPath.filters,
-						nameMap = editor._.elementsPath.nameMap || {};
+						filters = editor._.elementsPath.filters;
 
 					while ( element )
 					{
-						var ignore = 0;
+						var ignore = 0,
+							name;
+
+						if ( element.data( 'cke-real-element-type' ) )
+							name = element.data( 'cke-real-element-type' );
+						else
+							name = element.getName();
+
 						for ( var i = 0; i < filters.length; i++ )
 						{
-							if ( filters[ i ]( element ) === false )
+							var ret = filters[ i ]( element, name );
+							if ( ret === false )
 							{
 								ignore = 1;
 								break;
 							}
+							name = ret || name;
 						}
 
@@ -138,12 +146,4 @@
 						{
 							var index = elementsList.push( element ) - 1;
-							var name;
-							if ( element.data( 'cke-real-element-type' ) )
-								name = element.data( 'cke-real-element-type' );
-							else
-								name = element.getName();
-
-							// Map to display name if any, e.g. ol -> list
-							name = nameMap[ name ] || name;
 
 							// Use this variable to add conditional stuff to the
