Index: /CKEditor/trunk/_source/core/editor.js
===================================================================
--- /CKEditor/trunk/_source/core/editor.js	(revision 6306)
+++ /CKEditor/trunk/_source/core/editor.js	(revision 6307)
@@ -548,40 +548,5 @@
 				this.updateElement();
 
-			if ( this.mode )
-			{
-				// ->		currentMode.unload( holderElement );
-				this._.modes[ this.mode ].unload( this.getThemeSpace( 'contents' ) );
-			}
-
 			this.theme.destroy( this );
-
-			var toolbars,
-				index = 0,
-				j,
-				items,
-				instance;
-
-			if ( this.toolbox )
-			{
-				toolbars = this.toolbox.toolbars;
-				for ( ; index < toolbars.length ; index++ )
-				{
-					items = toolbars[ index ].items;
-					for ( j = 0 ; j < items.length ; j++ )
-					{
-						instance = items[ j ];
-						if ( instance.clickFn ) CKEDITOR.tools.removeFunction( instance.clickFn );
-						if ( instance.keyDownFn ) CKEDITOR.tools.removeFunction( instance.keyDownFn );
-
-						if ( instance.index ) CKEDITOR.ui.button._.instances[ instance.index ] = null;
-					}
-				}
-			}
-
-			if ( this.contextMenu )
-				CKEDITOR.tools.removeFunction( this.contextMenu._.functionId );
-
-			if ( this._.filebrowserFn )
-				CKEDITOR.tools.removeFunction( this._.filebrowserFn );
 
 			this.fire( 'destroy' );
Index: /CKEditor/trunk/_source/plugins/editingblock/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/editingblock/plugin.js	(revision 6306)
+++ /CKEditor/trunk/_source/plugins/editingblock/plugin.js	(revision 6307)
@@ -113,4 +113,10 @@
 					}, 0 );
 				});
+
+			editor.on( 'destroy', function ()
+			{
+				// ->		currentMode.unload( holderElement );
+				this._.modes[ this.mode ].unload( this.getThemeSpace( 'contents' ) );
+			});
 		}
 	});
Index: /CKEditor/trunk/_source/plugins/filebrowser/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/filebrowser/plugin.js	(revision 6306)
+++ /CKEditor/trunk/_source/plugins/filebrowser/plugin.js	(revision 6307)
@@ -389,4 +389,5 @@
 		{
 			editor._.filebrowserFn = CKEDITOR.tools.addFunction( setUrl, editor );
+			editor.on( 'destroy', function () { CKEDITOR.tools.removeFunction( this._.filebrowserFn ); } );
 		}
 	} );
Index: /CKEditor/trunk/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/toolbar/plugin.js	(revision 6306)
+++ /CKEditor/trunk/_source/plugins/toolbar/plugin.js	(revision 6307)
@@ -346,4 +346,23 @@
 					}
 				});
+
+			editor.on( 'destroy', function()
+			{
+				var toolbars, index = 0, i,
+						items, instance;
+				toolbars = this.toolbox.toolbars;
+				for ( ; index < toolbars.length; index++ )
+				{
+					items = toolbars[ index ].items;
+					for ( i = 0; i < items.length; i++ )
+					{
+						instance = items[ i ];
+						if ( instance.clickFn ) CKEDITOR.tools.removeFunction( instance.clickFn );
+						if ( instance.keyDownFn ) CKEDITOR.tools.removeFunction( instance.keyDownFn );
+
+						if ( instance.index ) CKEDITOR.ui.button._.instances[ instance.index ] = null;
+					}
+				}
+			});
 
 			editor.addCommand( 'toolbarFocus', commands.toolbarFocus );
