1 index e797e4f9..5f64e72d 100644
2 --- a/ivi-shell/ivi-shell.c
3 +++ b/ivi-shell/ivi-shell.c
4 @@ -162,6 +162,10 @@ layout_surface_cleanup(struct ivi_shell_surface *ivisurf)
6 assert(ivisurf->layout_surface != NULL);
8 + /* destroy weston_surface destroy signal. */
9 + if (!ivisurf->layout_surface->weston_desktop_surface)
10 + wl_list_remove(&ivisurf->surface_destroy_listener.link);
12 ivi_layout_surface_destroy(ivisurf->layout_surface);
13 ivisurf->layout_surface = NULL;
15 @@ -169,9 +173,6 @@ layout_surface_cleanup(struct ivi_shell_surface *ivisurf)
16 ivisurf->surface->committed_private = NULL;
17 weston_surface_set_label_func(ivisurf->surface, NULL);
18 ivisurf->surface = NULL;
20 - // destroy weston_surface destroy signal.
21 - wl_list_remove(&ivisurf->surface_destroy_listener.link);