http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58425
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> --- The code works when one adds a line to vortex.F90's manual_finalizer: do while(associated(current%next)) next => current%next ! start after break in chain deallocate(current) current=>next if (.not.associated(current)) exit ! <<<< ADDED end do Thus, at least locally, the program has a bug. The other question is whether for the specific program, it should still work. At least with Crayftn, it seems to work (also with valgring/MALLOC_PERTURB_ set). On the other hand, with ifort it starts failing when MALLOC_PERTURB_ is set.