diff --git a/source/blender/windowmanager/intern/wm_surface.c b/source/blender/windowmanager/intern/wm_surface.c index 39bff205cbd..385b55f36f9 100644 --- a/source/blender/windowmanager/intern/wm_surface.c +++ b/source/blender/windowmanager/intern/wm_surface.c @@ -45,7 +45,8 @@ static wmSurface *g_drawable = NULL; void wm_surfaces_iter(bContext *C, void (*cb)(bContext *C, wmSurface *)) { - LISTBASE_FOREACH (wmSurface *, surf, &global_surface_list) { + /* Mutable iterator in case a surface is freed. */ + LISTBASE_FOREACH_MUTABLE (wmSurface *, surf, &global_surface_list) { cb(C, surf); } }