diff --git a/lib/filter.c b/lib/filter.c index 17ca4689f4..4a83b8b043 100644 --- a/lib/filter.c +++ b/lib/filter.c @@ -451,6 +451,7 @@ static void access_list_filter_delete(struct access_list *access, struct filter *filter) { struct access_master *master; + struct filter *replace = filter; master = access->master; @@ -472,7 +473,7 @@ static void access_list_filter_delete(struct access_list *access, (*master->delete_hook)(access); /* If access_list becomes empty delete it from access_master. */ - if (access_list_empty(access)) + if (access_list_empty(access) && !replace) access_list_delete(access); }