protected override void OnDestroyed ()
		{
			if (searchBackgoundWorker != null && searchBackgoundWorker.IsBusy) {
				searchBackgoundWorker.CancelAsync ();
				searchBackgoundWorker.Dispose ();
				searchBackgoundWorker = null;
			}
			
			if (this.TreeView != null) {
			//	Dispose (TreeView.GetRootNode ());
				TreeView.Tree.CursorChanged -= HandleCursorChanged;
				this.TreeView.Clear ();
				this.TreeView = null;
			}
			
			if (definitions != null) {
				definitions.Clear ();
				definitions = null;
			}
			
			ActiveMember = null;
			if (memberListStore != null) {
				memberListStore.Dispose ();
				memberListStore = null;
			}
			
			if (typeListStore != null) {
				typeListStore.Dispose ();
				typeListStore = null;
			}
			
			if (documentationPanel != null) {
				documentationPanel.Destroy ();
				documentationPanel = null;
			}
			if (inspectEditor != null) {
				inspectEditor.LinkRequest -= InspectEditorhandleLinkRequest;
				inspectEditor.Destroy ();
				inspectEditor = null;
			}
			
			if (this.UIManager != null) {
				this.UIManager.Dispose ();
				this.UIManager = null;
			}
			this.languageCombobox.Changed -= LanguageComboboxhandleChanged;
//			this.searchInCombobox.Changed -= SearchInComboboxhandleChanged;
//			this.searchEntry.Changed -= SearchEntryhandleChanged;
			this.searchTreeview.RowActivated -= SearchTreeviewhandleRowActivated;
			hpaned1.ExposeEvent -= HPaneExpose;
			PropertyService.PropertyChanged -= HandlePropertyChanged;
			base.OnDestroyed ();
		}
		protected override void OnDestroyed ()
		{
			ClearReferenceSegment ();
			if (searchBackgoundWorker != null && searchBackgoundWorker.IsBusy) {
				searchBackgoundWorker.CancelAsync ();
				searchBackgoundWorker.Dispose ();
				searchBackgoundWorker = null;
			}
			
			if (this.TreeView != null) {
				//	Dispose (TreeView.GetRootNode ());
				TreeView.Tree.CursorChanged -= HandleCursorChanged;
				this.TreeView.Clear ();
				this.TreeView = null;
			}
			
			if (definitions != null) {
				foreach (var def in definitions)
					def.Dispose ();
				definitions.Clear ();
				definitions = null;
			}
			
			ActiveMember = null;
			if (memberListStore != null) {
				memberListStore.Dispose ();
				memberListStore = null;
			}
			
			if (typeListStore != null) {
				typeListStore.Dispose ();
				typeListStore = null;
			}
			
			if (documentationPanel != null) {
				documentationPanel.Destroy ();
				documentationPanel = null;
			}
			if (inspectEditor != null) {
				inspectEditor.TextViewMargin.GetLink = null;
				inspectEditor.LinkRequest -= InspectEditorhandleLinkRequest;
				inspectEditor.Destroy ();
			}
			
			if (this.UIManager != null) {
				this.UIManager.Dispose ();
				this.UIManager = null;
			}

			this.loader = null;
			this.languageCombobox.Changed -= LanguageComboboxhandleChanged;
//			this.searchInCombobox.Changed -= SearchInComboboxhandleChanged;
//			this.searchEntry.Changed -= SearchEntryhandleChanged;
			this.searchTreeview.RowActivated -= SearchTreeviewhandleRowActivated;
			hpaned1.ExposeEvent -= HPaneExpose;
			if (NavigateBackwardAction != null) {
				this.NavigateBackwardAction.Dispose ();
				this.NavigateBackwardAction = null;
			}

			if (NavigateForwardAction != null) {
				this.NavigateForwardAction.Dispose ();
				this.NavigateForwardAction = null;
			}
			base.OnDestroyed ();
		}
        protected override void OnDestroyed()
        {
            if (searchBackgoundWorker != null && searchBackgoundWorker.IsBusy)
            {
                searchBackgoundWorker.CancelAsync();
                searchBackgoundWorker.Dispose();
                searchBackgoundWorker = null;
            }

            if (this.TreeView != null)
            {
                //	Dispose (TreeView.GetRootNode ());
                TreeView.Tree.CursorChanged -= HandleCursorChanged;
                this.TreeView.Clear();
                this.TreeView = null;
            }

            if (definitions != null)
            {
                definitions.Clear();
                definitions = null;
            }

            ActiveMember = null;
            if (memberListStore != null)
            {
                memberListStore.Dispose();
                memberListStore = null;
            }

            if (typeListStore != null)
            {
                typeListStore.Dispose();
                typeListStore = null;
            }

            if (documentationPanel != null)
            {
                documentationPanel.Destroy();
                documentationPanel = null;
            }
            if (inspectEditor != null)
            {
                inspectEditor.LinkRequest -= InspectEditorhandleLinkRequest;
                inspectEditor.Destroy();
                inspectEditor = null;
            }

            if (this.UIManager != null)
            {
                this.UIManager.Dispose();
                this.UIManager = null;
            }
            this.languageCombobox.Changed -= LanguageComboboxhandleChanged;
//			this.searchInCombobox.Changed -= SearchInComboboxhandleChanged;
//			this.searchEntry.Changed -= SearchEntryhandleChanged;
            this.searchTreeview.RowActivated -= SearchTreeviewhandleRowActivated;
            hpaned1.ExposeEvent             -= HPaneExpose;
            PropertyService.PropertyChanged -= HandlePropertyChanged;
            base.OnDestroyed();
        }