diff --git a/gui/src/TGCanvas.cxx b/gui/src/TGCanvas.cxx
index 8bdae24fca97a89bf21947454ef7b0ec8692068d..230121753256bc2703e0763066004006017ff996 100644
--- a/gui/src/TGCanvas.cxx
+++ b/gui/src/TGCanvas.cxx
@@ -1,4 +1,4 @@
-// @(#)root/gui:$Name:  $:$Id: TGCanvas.cxx,v 1.30 2005/01/12 18:39:29 brun Exp $
+// @(#)root/gui:$Name:  $:$Id: TGCanvas.cxx,v 1.31 2005/01/18 21:07:26 brun Exp $
 // Author: Fons Rademakers   11/01/98
 
 /*************************************************************************
@@ -783,6 +783,7 @@ Bool_t TGContainer::HandleButton(Event_t *event)
    Int_t yy = pos.fY + event->fY;
 
    if (event->fType == kButtonPress) {
+      gVirtualX->SetInputFocus(fId);
 
       fXp = pos.fX + event->fX;
       fYp = pos.fY + event->fY;
@@ -1827,13 +1828,14 @@ TGCanvas::~TGCanvas()
 
    delete fHScrollbar;
    delete fVScrollbar;
-   delete fVport;
 
    TGFrame *container = fVport->GetContainer();
 
    if (container->MustCleanup()) {
       delete container;
    }
+
+   delete fVport;
 }
 
 //______________________________________________________________________________
diff --git a/gui/src/TGListBox.cxx b/gui/src/TGListBox.cxx
index e7219aa60b590dea066475e474e234da02d16b1e..2d54e51af9f1e70bc5d2e3e0da5624a3d923e36c 100644
--- a/gui/src/TGListBox.cxx
+++ b/gui/src/TGListBox.cxx
@@ -1,4 +1,4 @@
-// @(#)root/gui:$Name:  $:$Id: TGListBox.cxx,v 1.39 2005/01/13 20:03:31 brun Exp $
+// @(#)root/gui:$Name:  $:$Id: TGListBox.cxx,v 1.40 2005/01/17 15:33:16 brun Exp $
 // Author: Fons Rademakers   12/01/98
 
 /*************************************************************************
@@ -641,6 +641,8 @@ Bool_t TGLBContainer::HandleButton(Event_t *event)
       return kTRUE;
    }
 
+   gVirtualX->SetInputFocus(fId);
+
    if (fMultiSelect) {
       if (event->fType == kButtonPress) {
          TIter next(fList);