module m ! finalized t type :: t contains final :: tfinal end type contains subroutine tfinal(a) type(t), intent(inout) :: a end subroutine ! pass optional t, finalized on entry subroutine pass(a) type(t), allocatable, intent(out), optional :: a print *, 'passed' end subroutine end module program p use m type(t), allocatable :: a call pass(a) ! ok call pass() ! segfault end programIt would certainly be nice to have a fix for this, or some ideas for workarounds without having to change the dummy's attributes. Kind regards Ferdinand PS: Syntax-highlighting as suggested using (left-angle bracket) pre class="brush:fortran" (right-angle bracket) doesn't work in my post.