Sorry, I meant to say that program testch print *, ch() contains function ch result(str) character(len = 10) :: str str ="hello" end function ch end program testch now fails. The pointer case does too! Paul T