Hello, a small, unexciting bug. For the case: subroutine m() use m end subroutine m the USE statement is rejected, but it is not if the subroutine is contained. In the latter case, the namespace of the symbol of the subroutine is the parent namespace, which confuses the error condition in check_for_ambiguous. Regression tested on x86_64-unknown-linux-gnu. OK for trunk? Mikael