Index: /CKEditor/trunk/_source/plugins/specialchar/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/specialchar/plugin.js	(revision 5261)
+++ /CKEditor/trunk/_source/plugins/specialchar/plugin.js	(revision 5262)
@@ -3,58 +3,27 @@
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
-(function(){
-	/**
-	 * @file Special Character plugin
-	 */
-	
-	CKEDITOR.plugins.add( 'specialchar',
+
+/**
+ * @file Special Character plugin
+ */
+
+CKEDITOR.plugins.add( 'specialchar',
+{
+	init : function( editor )
 	{
-		init : function( editor )
-		{
-			var pluginName = 'specialchar';
-	
-			// Register the dialog.
-			CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/specialchar.js' );
-	
-			// Register the command.
-			editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
-	
-			// Register the toolbar button.
-			editor.ui.addButton( 'SpecialChar',
-				{
-					label : editor.lang.specialChar.toolbar,
-					command : pluginName
-				});
-			
-			// Register the handler for Firefox (#5170)
-			if ( CKEDITOR.env.gecko )
+		var pluginName = 'specialchar';
+
+		// Register the dialog.
+		CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/specialchar.js' );
+
+		// Register the command.
+		editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
+
+		// Register the toolbar button.
+		editor.ui.addButton( 'SpecialChar',
 			{
-				editor.on( 'insertSpecialChar', function( event )
-					{
-						var range = getRange( editor );
-						
-						if ( range )
-							range.insertNode( editor.document.createText( event.data ));
-						else
-							editor.insertHtml( event.data );
-					}
-				);
-			}
-		}
-	} );
-
-	function getRange( editor )
-	{
-		// Get the selection ranges.
-		var ranges = editor.getSelection().getRanges();
-
-		// Delete the contents of all ranges .
-		for ( var i = ranges.length - 1 ; i >= 0 ; i-- )
-		{
-			ranges[ i ].deleteContents();
-		}
-
-		// Return the first range.
-		return ranges[ 0 ];
+				label : editor.lang.specialChar.toolbar,
+				command : pluginName
+			});
 	}
-})()
+} );
