 <p>If _disable_f2 is being given two arguments, let it have what it wants.. try below... :)</p> <pre><code>from Tkinter import * class App: def _disable_f2(self, master): if self.filt.get() == 'bandpass': self.filter_menu.configure(state='normal') else: self.filter_menu.configure(state='disabled') def __init__(self, master): self.f2var = StringVar() self.f2var.set('5.0') self.f2_entry = Entry(master, textvariable=self.f2var, width=5) self.f2_entry.pack() self.filt = StringVar() self.filt.set('bandpass') self.filter_menu = OptionMenu(master, self.filt, 'bandpass', 'lowpass ', 'highpass', command=self._disable_f2) self.filter_menu.pack(ipadx=50) root = Tk() app = App(root) root.mainloop() </code></pre>