diff --git a/c/Encoding b/c/Encoding
index 72cf8d818e2a713919d05123ee6ca4b27551fef2..d98b1ae953f4ac685a22b7b055dcc4c8dbf39bd0 100644
--- a/c/Encoding
+++ b/c/Encoding
@@ -189,13 +189,13 @@ int encoding_select(int eventcode, ToolboxEvent * event, IdBlock * idb, void * h
   {
     ObjectId ancestor;
 
-    e = toolbox_get_ancestor(0, idb->ancestor_id, &ancestor, NULL);
+    e = toolbox_get_ancestor(0, menu_id, &ancestor, NULL);
 
     if (!e && ancestor == choices_windowid && new_choices)
     {
       new_choices->encoding = idb->self_component;
       choices_set_encoding_field();
-      encoding_prepare_menu(idb->ancestor_id, priority_default, new_choices->encoding);
+      encoding_prepare_menu(menu_id, priority_default, new_choices->encoding);
       return 1;
     }
     else
@@ -208,7 +208,7 @@ int encoding_select(int eventcode, ToolboxEvent * event, IdBlock * idb, void * h
     b->encoding          = idb->self_component;
     b->encoding_priority = priority_user;
 
-    encoding_prepare_menu(idb->ancestor_id, b->encoding_priority, b->encoding);
+    encoding_prepare_menu(menu_id, b->encoding_priority, b->encoding);
   }
 
   return 1;
@@ -240,7 +240,7 @@ int encoding_from_document_select(int eventcode, ToolboxEvent * event, IdBlock *
     b->encoding_priority = priority_user;
   }
 
-  encoding_prepare_menu(idb->self_id, b->encoding_priority, b->encoding);
+  encoding_prepare_menu(menu_id, b->encoding_priority, b->encoding);
 
   return 1;
 }
@@ -269,8 +269,12 @@ int encoding_show_menu(int eventcode, ToolboxEvent * event, IdBlock * idb, void
     if (idb->ancestor_id == choices_windowid && new_choices)
     {
       /* Fade "From document" item as it is not relevant to choices */
-      encoding_prepare_menu(idb->self_id, priority_default, new_choices->encoding);
+
       menu_set_fade(0, idb->self_id, 0x11FFF, 1);
+      encoding_prepare_menu(menu_id, priority_default, new_choices->encoding);
+
+      toolbox_set_client_handle(0, idb->self_id, NULL);
+
       return 1;
     }
     else
@@ -292,7 +296,7 @@ int encoding_show_menu(int eventcode, ToolboxEvent * event, IdBlock * idb, void
 
     toolbox_set_client_handle(0, idb->self_id, b);
 
-    encoding_prepare_menu(idb->self_id, b->encoding_priority, b->encoding);
+    encoding_prepare_menu(menu_id, b->encoding_priority, b->encoding);
   }
 
   return 1;