Index: pym/_emerge/__init__.py
===================================================================
--- pym/_emerge/__init__.py	(revision 12387)
+++ pym/_emerge/__init__.py	(revision 12388)
@@ -1047,6 +1047,9 @@
 		self.root = real_vartree.root
 		self.settings = real_vartree.settings
 		mykeys = list(real_vartree.dbapi._aux_cache_keys)
+		if "_mtime_" not in mykeys:
+			mykeys.append("_mtime_")
+		self._db_keys = mykeys
 		self._pkg_cache = pkg_cache
 		self.dbapi = PackageVirtualDbapi(real_vartree.settings)
 		vdb_path = os.path.join(self.root, portage.VDB_PATH)
@@ -1185,8 +1188,12 @@
 			pkg = pkg_vardb.get(pkg_hash_key)
 			if pkg is not None:
 				counter, mtime = real_vardb.aux_get(cpv, validation_keys)
+				try:
+					counter = long(counter)
+				except ValueError:
+					counter = 0
 
-				if counter != pkg.metadata["COUNTER"] or \
+				if counter != pkg.counter or \
 					mtime != pkg.mtime:
 					pkg_vardb.cpv_remove(pkg)
 					aux_get_history.discard(pkg.cpv)
@@ -1208,11 +1215,18 @@
 	def _pkg(self, cpv):
 		root_config = self._root_config
 		real_vardb = root_config.trees["vartree"].dbapi
-		db_keys = list(real_vardb._aux_cache_keys)
 		pkg = Package(cpv=cpv, installed=True,
-			metadata=izip(db_keys, real_vardb.aux_get(cpv, db_keys)),
+			metadata=izip(self._db_keys,
+			real_vardb.aux_get(cpv, self._db_keys)),
 			root_config=root_config,
 			type_name="installed")
+
+		try:
+			mycounter = long(pkg.metadata["COUNTER"])
+		except ValueError:
+			mycounter = 0
+			pkg.metadata["COUNTER"] = str(mycounter)
+
 		return pkg
 
 def grab_global_updates(portdir):
@@ -1559,7 +1573,7 @@
 	def _set_counter(self, k, v):
 		if isinstance(v, basestring):
 			try:
-				v = int(v.strip())
+				v = long(v.strip())
 			except ValueError:
 				v = 0
 		self._pkg.counter = v