I believe that I have located a bug in nevral.getHeader(). line 77 if l == 'in_rpm_db': should be checking if header is in rpmDB and therefore not download. Yet working backwards in clientStuff.HeaderInfoNevralLoad() l is always assigned rpmpath. This results in nevral.getHeader() always searching the localHdrPath. <snip config stuff> serverList = conf.servers HeaderInfo = nevral.nevral() clientStuff.get_package_info_from_servers(serverList, HeaderInfo) for name, arch in HeaderInfo.rpmbynamearch: ((e,v,r,a,l,i),state) = HeaderInfo.rpmbynamearch[name, arch] print 'name, arch ' + name + ',' + arch print HeaderInfo.getHeader(name, arch) The above code will fail if some headers have not been downloaded because the pkg is installed and up to date. Thanks Dave Farning