diff --git a/resources/icons/redo_toolbar.svg b/resources/icons/redo_toolbar.svg
index ad073244f..d005f8373 100644
--- a/resources/icons/redo_toolbar.svg
+++ b/resources/icons/redo_toolbar.svg
@@ -1,12 +1,13 @@
-
+
diff --git a/resources/icons/undo_toolbar.svg b/resources/icons/undo_toolbar.svg
index 699ccd807..15778a7ba 100644
--- a/resources/icons/undo_toolbar.svg
+++ b/resources/icons/undo_toolbar.svg
@@ -1,12 +1,13 @@
-
+
diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp
index c311472c7..fa7869e6a 100644
--- a/src/slic3r/GUI/Plater.cpp
+++ b/src/slic3r/GUI/Plater.cpp
@@ -3179,7 +3179,12 @@ void Plater::priv::set_current_panel(wxPanel* panel)
}
else if (current_panel == preview)
{
- this->q->reslice();
+ // see: Plater::priv::object_list_changed()
+ // FIXME: it may be better to have a single function making this check and let it be called wherever needed
+ bool export_in_progress = this->background_process.is_export_scheduled();
+ bool model_fits = view3D->check_volumes_outside_state() != ModelInstance::PVS_Partly_Outside;
+ if (!model.objects.empty() && !export_in_progress && model_fits)
+ this->q->reslice();
// keeps current gcode preview, if any
preview->reload_print(true);
preview->set_canvas_as_dirty();