diff --git a/base/inc/TVirtualPadEditor.h b/base/inc/TVirtualPadEditor.h
index bbee86d73961fc33e0a1f6a1eef4d07cb492b960..a0d00d5650854203bfebd00b8fa9dd3604234873 100644
--- a/base/inc/TVirtualPadEditor.h
+++ b/base/inc/TVirtualPadEditor.h
@@ -24,6 +24,8 @@
 #include "TString.h"
 #endif
 
+class TCanvas;
+
 class TVirtualPadEditor {
 
 protected:
@@ -45,11 +47,11 @@ public:
    virtual void     TextAttributes(Int_t ,Float_t ,Int_t ,Int_t ,Float_t ) { }
 
    virtual void     Build() { }
+   virtual void     Show() { }
    virtual void     Hide() { }
    virtual Bool_t   IsGlobal() const = 0;
-   virtual void     DeleteEditors() { }
    virtual void     SetGlobal(Bool_t) { }
-   virtual void     Show() { }
+   virtual TCanvas* GetCanvas() const = 0;
 
    // methods related to the new editor interface
 
diff --git a/base/src/TVirtualPadEditor.cxx b/base/src/TVirtualPadEditor.cxx
index b8dc523f4892a65635dd23731769ff23d6de90a5..064ebea64cf45bad085b9e789aa5f8e6157cca5d 100644
--- a/base/src/TVirtualPadEditor.cxx
+++ b/base/src/TVirtualPadEditor.cxx
@@ -87,10 +87,12 @@ void TVirtualPadEditor::SetPadEditorName(const char *name)
 //______________________________________________________________________________
 void TVirtualPadEditor::ShowEditor()
 {
-   // Show the pad editor. Static method.
+   // Show the global pad editor. Static method.
 
-   if (!fgPadEditor) GetPadEditor();
-   fgPadEditor->SetGlobal(kTRUE);
+   if (!fgPadEditor) {
+      GetPadEditor();
+      fgPadEditor->SetGlobal(kTRUE);
+   }
    fgPadEditor->Show();
 }
 
@@ -110,7 +112,6 @@ void TVirtualPadEditor::Terminate()
 
    if (!fgPadEditor) return;
 
-   fgPadEditor->DeleteEditors();
    delete fgPadEditor;
    fgPadEditor = 0;
 }