When AutoMapper encounters an object that\'s already been mapped, it seems to use that object again, instead of trying to re-map it. I believe it does this based on .Equal
.Equal
There is now an option to disable the cache.
Mapper.CreateMap(); var results = Mapper.Map, IList>(source, opt => opt.DisableCache = true);