diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp
index 00b074f7d..e9180d39a 100644
--- a/src/slic3r/GUI/GUI_ObjectList.cpp
+++ b/src/slic3r/GUI/GUI_ObjectList.cpp
@@ -64,12 +64,6 @@ ObjectList::ObjectList(wxWindow* parent) :
 
     init_icons();
 
-    // create popup menus for object and part
-    create_object_popupmenu(&m_menu_object);
-    create_part_popupmenu(&m_menu_part);
-    create_sla_object_popupmenu(&m_menu_sla_object);
-    create_instance_popupmenu(&m_menu_instance);
-
     // describe control behavior 
     Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, [this](wxEvent& event) {
         selection_changed();
@@ -141,6 +135,15 @@ void ObjectList::create_objects_ctrl()
         wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE);
 }
 
+void ObjectList::create_popup_menus()
+{
+    // create popup menus for object and part
+    create_object_popupmenu(&m_menu_object);
+    create_part_popupmenu(&m_menu_part);
+    create_sla_object_popupmenu(&m_menu_sla_object);
+    create_instance_popupmenu(&m_menu_instance);
+}
+
 void ObjectList::set_tooltip_for_item(const wxPoint& pt)
 {
     wxDataViewItem item;
@@ -421,9 +424,6 @@ void ObjectList::show_context_menu()
     if (multiple_selection() && selected_instances_of_same_object())
     {
         wxGetApp().plater()->PopupMenu(&m_menu_instance);
-
-        wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) {
-            evt.Enable(can_split_instances()); }, m_menu_item_split_instances->GetId());
         return;
     }
 
@@ -442,12 +442,6 @@ void ObjectList::show_context_menu()
             append_menu_item_settings(menu);
 
         wxGetApp().plater()->PopupMenu(menu);
-
-        wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) {
-            evt.Enable(is_splittable()); }, m_menu_item_split->GetId());
-
-        wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) {
-            evt.Enable(is_splittable()); }, m_menu_item_split_part->GetId());
     }
 }
 
@@ -973,6 +967,9 @@ void ObjectList::create_object_popupmenu(wxMenu *menu)
     // rest of a object_menu will be added later in:
     // - append_menu_items_add_volume() -> for "Add (volumes)"
     // - append_menu_item_settings() -> for "Add (settings)"
+
+    wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) {
+        evt.Enable(is_splittable()); }, m_menu_item_split->GetId());
 }
 
 void ObjectList::create_sla_object_popupmenu(wxMenu *menu)
@@ -991,11 +988,17 @@ void ObjectList::create_part_popupmenu(wxMenu *menu)
 
     // rest of a object_sla_menu will be added later in:
     // - append_menu_item_settings() -> for "Add (settings)"
+
+    wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) {
+            evt.Enable(is_splittable()); }, m_menu_item_split_part->GetId());
 }
 
 void ObjectList::create_instance_popupmenu(wxMenu*menu)
 {
     m_menu_item_split_instances = append_menu_item_instance_to_object(menu);
+
+    wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) {
+        evt.Enable(can_split_instances()); }, m_menu_item_split_instances->GetId());
 }
 
 wxMenu* ObjectList::create_settings_popupmenu(wxMenu *parent_menu)
diff --git a/src/slic3r/GUI/GUI_ObjectList.hpp b/src/slic3r/GUI/GUI_ObjectList.hpp
index 93a3ba60f..741fa3741 100644
--- a/src/slic3r/GUI/GUI_ObjectList.hpp
+++ b/src/slic3r/GUI/GUI_ObjectList.hpp
@@ -153,6 +153,7 @@ public:
 
 
     void                create_objects_ctrl();
+    void                create_popup_menus();
     wxDataViewColumn*   create_objects_list_extruder_column(int extruders_count);
     void                update_objects_list_extruder_column(int extruders_count);
     // show/hide "Extruder" column for Objects List
diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp
index 51f1c5f19..947dd59bd 100644
--- a/src/slic3r/GUI/MainFrame.cpp
+++ b/src/slic3r/GUI/MainFrame.cpp
@@ -22,6 +22,7 @@
 #include "AppConfig.hpp"
 #include "PrintHostDialogs.hpp"
 #include "wxExtensions.hpp"
+#include "GUI_ObjectList.hpp"
 #include "I18N.hpp"
 
 #include <fstream>
@@ -132,6 +133,8 @@ void MainFrame::init_tabpanel()
     wxGetApp().plater_ = m_plater;
     m_tabpanel->AddPage(m_plater, _(L("Plater")));
 
+    wxGetApp().obj_list()->create_popup_menus();
+
     // The following event is emited by Tab implementation on config value change.
     Bind(EVT_TAB_VALUE_CHANGED, &MainFrame::on_value_changed, this);