diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp
index d90ad8a87..d64853797 100644
--- a/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/src/slic3r/GUI/GLCanvas3D.cpp
@@ -1670,8 +1670,9 @@ void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject
                 } else {
                     const GLGizmosManager& gm = get_gizmos_manager();
                     auto gizmo_type = gm.get_current_type();
-                    if (gizmo_type == GLGizmosManager::FdmSupports
-                     || gizmo_type == GLGizmosManager::Seam)
+                    if (    (gizmo_type == GLGizmosManager::FdmSupports
+                          || gizmo_type == GLGizmosManager::Seam)
+                        && ! vol->is_modifier)
                         vol->force_neutral_color = true;
                     else
                         vol->force_native_color = true;
diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp
index a25d9105f..a34c7562e 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp
@@ -295,11 +295,9 @@ void ObjectClipper::on_update()
     if (has_hollowed)
         meshes.push_back(get_pool()->hollowed_mesh()->get_hollowed_mesh());
 
-    if (meshes.empty()) {
+    if (meshes.empty())
         for (const ModelVolume* mv : mo->volumes)
-            if (mv->is_model_part())
-                meshes.push_back(&mv->mesh());
-    }
+            meshes.push_back(&mv->mesh());
 
     if (meshes != m_old_meshes) {
         m_clippers.clear();
@@ -335,9 +333,6 @@ void ObjectClipper::render_cut() const
 
     size_t clipper_id = 0;
     for (const ModelVolume* mv : mo->volumes) {
-        if (! mv->is_model_part())
-            continue;
-
         Geometry::Transformation vol_trafo  = mv->get_transformation();
         Geometry::Transformation trafo = inst_trafo * vol_trafo;
         trafo.set_offset(trafo.get_offset() + Vec3d(0., 0., sel_info->get_sla_shift()));