m1 appears in p0's dict not because it's in m0's dict but because when a submodule is imported it is put in its parent module's dict. If you were to import p0.m1 you'd see 'm1' in dir(p0). Jeff