diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 84d6f7e9209..82284ef8d29 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1890,7 +1890,9 @@ static int wm_handler_fileselect_do(bContext *C, ListBase *handlers, wmEventHand WM_operator_last_properties_store(handler->op); } - WM_operator_free(handler->op); + if (retval & (OPERATOR_CANCELLED | OPERATOR_FINISHED)) { + WM_operator_free(handler->op); + } } else { if (handler->op->type->cancel) {