Oh yea, I forgot to mention: 

m_objTransformation is actually pointing to an instance of a SM3DDisplayTransformationClass object. That is why the exception is complaining about casing from SM3DDisplayTransformationClass to I3DDisplayTransformationSetup. This is legal though as 
SM3DDisplayTransformationClass implements I3DDisplayTransformationSetup, or the compiler would have moaned Wink SM3DDisplayTransformationClass by law must always be able to cast to one of its interfaces ,surely!