When i run yum update or yum install any package or header that gets downloaded ends up in / and not /var/cache/yum/repo/packages. The problem is somewhere in getRepo() after it loads the (slightly modified) versionlock plugin. If i remove the versionlock plugin everything works. With the versionlock plugin in place when getRepo() gets called from localPkg() or locaHdr() in YumAvalibablePackage() the repo object it returns has no pkgdir attribute, or i should say the pkgdir attribute is empty. When getRepo() gets called from downloadHeader() in __init__ right after it calls localHdr() the repo object it returns _does_ have pkgdir set correctly. I'm not sure why, but RepoStorage.add() is being called twice once before the plugin loads and once after, both times its being called from getReposFromConfig() from __init__, but i don't see whats calling getReposFromConfig. I suspected that the second time it calls getReposFromConfig() it was missing some data but the repo object from getRepo() called from downHeader() had the correct data and that's after the second call from getReposFromConfig(). Any ideas why its not setting pkgdir for repo objects and my headers and packages are ending up in / ? oh yeah, this is suse enterprise linux 9, yum 2.4.2, and versionlock slightly modified from whats on the wiki. Thanks Eli Criffield