diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py
index 0892a69..edda34a 100644
--- a/Lib/lib-tk/Tkinter.py
+++ b/Lib/lib-tk/Tkinter.py
@@ -139,8 +139,7 @@
 		return self.tk.getboolean(self.tk.call(
 			'set', 'tk_strictMotif', boolean))
 	def tk_menuBar(self, *args):
-		if TkVersion < 4.1:
-			apply(self.tk.call, ('tk_menuBar', self._w) + args)
+		pass # obsolete since Tk 4.0
 	def wait_variable(self, name='PY_VAR'):
 		self.tk.call('tkwait', 'variable', name)
 	waitvar = wait_variable # XXX b/w compat
@@ -1218,8 +1217,7 @@
 	def __init__(self, master=None, cnf={}, **kw):
 		Widget.__init__(self, master, 'menu', cnf, kw)
 	def tk_bindForTraversal(self):
-		if TkVersion < 4.1:
-			self.tk.call('tk_bindForTraversal', self._w)
+		pass # obsolete since Tk 4.0
 	def tk_mbPost(self):
 		self.tk.call('tk_mbPost', self._w)
 	def tk_mbUnpost(self):
diff --git a/Lib/tkinter/Tkinter.py b/Lib/tkinter/Tkinter.py
index 0892a69..edda34a 100755
--- a/Lib/tkinter/Tkinter.py
+++ b/Lib/tkinter/Tkinter.py
@@ -139,8 +139,7 @@
 		return self.tk.getboolean(self.tk.call(
 			'set', 'tk_strictMotif', boolean))
 	def tk_menuBar(self, *args):
-		if TkVersion < 4.1:
-			apply(self.tk.call, ('tk_menuBar', self._w) + args)
+		pass # obsolete since Tk 4.0
 	def wait_variable(self, name='PY_VAR'):
 		self.tk.call('tkwait', 'variable', name)
 	waitvar = wait_variable # XXX b/w compat
@@ -1218,8 +1217,7 @@
 	def __init__(self, master=None, cnf={}, **kw):
 		Widget.__init__(self, master, 'menu', cnf, kw)
 	def tk_bindForTraversal(self):
-		if TkVersion < 4.1:
-			self.tk.call('tk_bindForTraversal', self._w)
+		pass # obsolete since Tk 4.0
 	def tk_mbPost(self):
 		self.tk.call('tk_mbPost', self._w)
 	def tk_mbUnpost(self):
