Tix update from Mike Clarkson (maintainer)
diff --git a/Demo/tix/BUGS.txt b/Demo/tix/BUGS.txt
deleted file mode 100644
index 052a1e6..0000000
--- a/Demo/tix/BUGS.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-$Id$
-
-1)	There seems to be a problem with ComboBox that shows up
-in the ExFileSelectBox demo. The popdown scrolled list widget
-is being created, then destroyed. This does not happen in Tcl Tix.
-This is probably a sympton in Tix from _tkinter; if you find the cause 
-of this, please post a patch on http://tix.sourceforge.net.
-
diff --git a/Demo/tix/tixwidgets.py b/Demo/tix/tixwidgets.py
index f6bb70e..ae7b063 100644
--- a/Demo/tix/tixwidgets.py
+++ b/Demo/tix/tixwidgets.py
@@ -560,6 +560,9 @@
     top.pack(expand=1, fill=Tix.BOTH)
     bot.pack(fill=Tix.BOTH)
 
+    win.bind('<Map>', func=lambda arg=0, rh=rh, win=win:
+	     win.tk.call('tixDoWhenIdle', str(rh), 'attachwidget', str(win)))
+
 def SWindow_reset(rh, win):
     win.place(x=30, y=150, width=190, height=120)
     win.update()
@@ -575,8 +578,18 @@
 		      text='The Tix ScrolledWindow widget allows you to scroll any kind of Tk widget. It is more versatile than a scrolled canvas widget.')
 
     win = Tix.ScrolledText(top, scrollbar='auto')
-#    win.text['wrap'] = 'none'
-    win.text.insert(Tix.END, 'This is a text widget embedded in a scrolled window. Although the original Tix demo does not have any text here, I decided to put in some so that you can see the effect of scrollbars etc.')
+    win.text['wrap'] = 'none'
+    win.text.insert(Tix.END, '''When -scrollbar is set to "auto", the
+scrollbars are shown only when needed. 
+Additional modifiers can be used to force a
+scrollbar to be shown or hidden. For example, 
+"auto -y" means the horizontal scrollbar 
+should be shown when needed but the vertical 
+scrollbar should always be hidden;
+"auto +x" means the vertical scrollbar
+should be shown when needed but the horizontal 
+scrollbar should always be shown, and so on.'''
+)
     win.place(x=30, y=150, width=190, height=100)
 
     rh = Tix.ResizeHandle(top, bg='black',
diff --git a/Lib/lib-tk/Tix.py b/Lib/lib-tk/Tix.py
index 5759356..98a06c2 100755
--- a/Lib/lib-tk/Tix.py
+++ b/Lib/lib-tk/Tix.py
@@ -203,12 +203,16 @@
             self.tk.eval('global auto_path; lappend auto_path {%s}' % tixlib)
             self.tk.eval('global tcl_pkgPath; lappend tcl_pkgPath {%s}' % tixlib)
         # Load Tix - this should work dynamically or statically
-        # If it's static, lib/tix8.1/pkgIndex.tcl should have
+        # If it's static, tcl/tix8.1/pkgIndex.tcl should have
         #               'load {} Tix'
-        # If it's dynamic under Unix, lib/tix8.1/pkgIndex.tcl should have
+        # If it's dynamic under Unix, tcl/tix8.1/pkgIndex.tcl should have
         #               'load libtix8.1.8.3.so Tix'
         self.tk.eval('package require Tix')
 
+    def destroy(self):
+        # For safety, remove an delete_window binding before destroy
+        self.protocol("WM_DELETE_WINDOW", "")
+        Tkinter.Tk.destroy(self)
 
 # The Tix 'tixForm' geometry manager
 class Form:
@@ -1669,16 +1673,20 @@
 
 class _dummyComboBox(ComboBox, TixSubWidget):
     def __init__(self, master, name, destroy_physically=1):
-        TixSubWidget.__init__(self, master, name, destroy_physically)
+        TixSubWidget.__init__(self, master, name, ['fancy',destroy_physically])
+        self.subwidget_list['label'] = _dummyLabel(self, 'label')
         self.subwidget_list['entry'] = _dummyEntry(self, 'entry')
         self.subwidget_list['arrow'] = _dummyButton(self, 'arrow')
-        # I'm not sure about this destroy_physically=0 in all cases;
-        # it may depend on if -dropdown is true; I've added as a trial
+
         self.subwidget_list['slistbox'] = _dummyScrolledListBox(self,
-                                                                'slistbox',
-                                                                destroy_physically=0)
-        self.subwidget_list['listbox'] = _dummyListbox(self, 'listbox',
-                                                       destroy_physically=0)
+                                                                'slistbox')
+        try:
+            self.subwidget_list['tick'] = _dummyButton(self, 'tick')
+            #cross Button : present if created with the fancy option
+            self.subwidget_list['cross'] = _dummyButton(self, 'cross')
+        except TypeError:
+            # unavailable when -fancy not specified
+            pass
 
 class _dummyDirList(DirList, TixSubWidget):
     def __init__(self, master, name, destroy_physically=1):
@@ -1738,9 +1746,11 @@
 ### Utility Routines ###
 ########################
 
-# Returns the qualified path name for the widget. Normally used to set
-# default options for subwidgets. See tixwidgets.py
+#mike Should tixDestroy be exposed as a wrapper? - but not for widgets.
+
 def OptionName(widget):
+    '''Returns the qualified path name for the widget. Normally used to set
+    default options for subwidgets. See tixwidgets.py'''
     return widget.tk.call('tixOptionName', widget._w)
 
 # Called with a dictionary argument of the form
@@ -1766,6 +1776,38 @@
     # FIXME: It should inherit -superclass tixScrolledWidget
     pass
 
+class Grid(TixWidget):
+    '''The Tix Grid command creates a new window  and makes it into a
+    tixGrid widget. Additional options, may be specified on the command
+    line or in the option database to configure aspects such as its cursor
+    and relief.
+
+    A Grid widget displays its contents in a two dimensional grid of cells.
+    Each cell may contain one Tix display item, which may be in text,
+    graphics or other formats. See the DisplayStyle class for more information
+    about Tix display items. Individual cells, or groups of cells, can be
+    formatted with a wide range of attributes, such as its color, relief and
+    border.
+
+    Subwidgets - None'''
+    pass
+
+    # def anchor option ?args ...?
+    # def bdtype
+    # def delete dim from ?to?
+    # def edit apply
+    # def edit set x y
+    # def entrycget x y option
+    # def entryconfigure x y ?option? ?value option value ...?
+    # def format
+    # def index
+    # def move dim from to offset
+    # def set x y ?-itemtype type? ?option value...?
+    # def size dim index ?option value ...?
+    # def unset x y
+    # def xview
+    # def yview
+    
 class ScrolledGrid(TixWidget):
     '''Scrolled Grid widgets'''