https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61527
--- Comment #2 from mrestelli <mrestelli at gmail dot com> --- I am no expert, but I think that the correct behaviour is that of the older version: the two interfaces indeed are ambiguous, since a call like type(t2) :: b call disp(b) could call both disp1 and disp2.