diff --git a/synfig-studio/src/synfigapp/actions/layermove.cpp b/synfig-studio/src/synfigapp/actions/layermove.cpp index 7e66be3d851..7ee9d12df30 100644 --- a/synfig-studio/src/synfigapp/actions/layermove.cpp +++ b/synfig-studio/src/synfigapp/actions/layermove.cpp @@ -158,7 +158,7 @@ Action::LayerMove::perform() // Find the iterator for the layer Canvas::iterator iter = src_canvas->find_index(layer, old_index); - if (*iter != layer) + if (iter == src_canvas->end() || *iter != layer) throw Error(_("This layer doesn't exist anymore.")); // synfig::info(__FILE__":%d: layer->count()=%d",__LINE__,layer.count()); @@ -227,7 +227,7 @@ Action::LayerMove::undo() Canvas::iterator iter=dest_canvas->find_index(layer, index); // If we couldn't find the layer in the canvas, then bail - if(*iter!=layer || (get_canvas()!=dest_canvas && !dest_canvas->is_inline())) + if(iter == dest_canvas->end() || *iter!=layer || (get_canvas()!=dest_canvas && !dest_canvas->is_inline())) throw Error(_("This layer doesn't exist anymore.")); // If we were to move it to where it is