Source: http://github.com/nanotube/pmw_fixes/commit/5e6dcbdaef2bb6c40037b922dd0efa081f1575ab (Daniel Folkinshteyn)

fix bug in OptionMenu.setitems, introduced with the fixing of this python 
bug:
http://bugs.python.org/issue1342811

versions of python 2.5.4 and newer now automatically delete commands when 
items are deleted
however, that causes error if the command is deleted manually beforehand.
old versions, on the contrary, require manual command deletion to free up 
the objects.

so we put in a python version check to see if we need to manually delete 
commands.

fixes the Pmw bug referred to here:
http://sourceforge.net/forum/forum.php?thread_id=3283195&forum_id=33675
and here:
http://sourceforge.net/tracker/?func=detail&aid=2795731&group_id=10743&ati
d=110743

--- a/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py
+++ b/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py
@@ -1,6 +1,7 @@
 import types
 import Tkinter
 import Pmw
+import sys
 
 class OptionMenu(Pmw.MegaWidget):
 
@@ -59,11 +60,17 @@ class OptionMenu(Pmw.MegaWidget):
 
     def setitems(self, items, index = None):
 
-        # Clean up old items and callback commands.
-        for oldIndex in range(len(self._itemList)):
-            tclCommandName = str(self._menu.entrycget(oldIndex, 'command'))
-            if tclCommandName != '':   
-                self._menu.deletecommand(tclCommandName)
+        # python version check
+        # python versions >= 2.5.4 automatically clean commands
+        # and manually cleaning them causes errors when deleting items
+        
+        if sys.version_info[0] * 100 + sys.version_info[1] * 10 + \
+                        sys.version_info[2] < 254:
+            # Clean up old items and callback commands.
+            for oldIndex in range(len(self._itemList)):
+                tclCommandName = str(self._menu.entrycget(oldIndex, 'command'))
+                if tclCommandName != '':   
+                    self._menu.deletecommand(tclCommandName)
         self._menu.delete(0, 'end')
 	self._itemList = list(items)
 
