When using multiple inheritance (ie. Base <- Ext1 <- Ext2) and Ext2 overrides a type-bound procedure defined in the base type, there seems to be a bug that can lead to calling the wrong type-bound procedure.
This happens when trying to call the overriden procedure in an instance of type Ext2 from a class pointer of type CLASS (Ext1). Then, the base routine is called rather then the overriden routine from Ext2.
See the attached VS2008 code for an example.
I would expect to get Ext2 three times, however, the result is Ext2, Base, Ext2.
Note that when the procedure is also overriden in Ext1, the correct result (Ext2 Ext2 Ext2)is obtained.