#1207589: merge with 3.3.
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 148a1da..ac5e069 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -479,7 +479,12 @@
         if iswin:
             self.text.config(cursor="arrow")
 
-        for label, eventname, verify_state in self.rmenu_specs:
+        for item in self.rmenu_specs:
+            try:
+                label, eventname, verify_state = item
+            except ValueError: # see issue1207589
+                continue
+
             if verify_state is None:
                 continue
             state = getattr(self, verify_state)()
@@ -497,7 +502,8 @@
 
     def make_rmenu(self):
         rmenu = Menu(self.text, tearoff=0)
-        for label, eventname, _ in self.rmenu_specs:
+        for item in self.rmenu_specs:
+            label, eventname = item[0], item[1]
             if label is not None:
                 def command(text=self.text, eventname=eventname):
                     text.event_generate(eventname)
diff --git a/Misc/NEWS b/Misc/NEWS
index 4c8f211..0bf63e2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1015,6 +1015,8 @@
 IDLE
 ----
 
+- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
+
 - Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
 
 - Issue #14254: IDLE now handles readline correctly across shell restarts.