diff --git a/src/mio/installer.py b/src/mio/installer.py
index 9c42bf5f091ad6958492128e51ce4690f01365b2..7eed9762cc273dd6dc9eee5ace2cfd06a6c8ebce 100755
--- a/src/mio/installer.py
+++ b/src/mio/installer.py
@@ -181,11 +181,13 @@ class Installer:
         version_db = mio.rpmDB.VersionDB()
         for r in self.rpm:
             r.new_version = version_db[r.name]
-
+            pass
         result = []
         for r in rpm:
             if version_db[r] == None:
                 result.append(r)
+                pass
+            pass
         return result
             
     def install_groups(self, prefix, backup):
diff --git a/src/mio/rpmDB.py b/src/mio/rpmDB.py
index 15908fa2357a8cfe2cc1a2786436bf2364a6335f..4e97622d6b57f29a5c0ee7e87622b219df7aaaa3 100755
--- a/src/mio/rpmDB.py
+++ b/src/mio/rpmDB.py
@@ -4,6 +4,28 @@ try:
 except:
     pass
 
+class RPM:
+
+    def __init__(self, name, arch, version, release):
+        self.name = name
+        self.arch = arch
+        self.version = version
+        self.release = release
+        pass
+
+    def __eq__(self, other):
+        return (self.__class__ == other.__class__,
+                self.name == other.name and
+                self.arch == other.arch and 
+                self.version == other.version and 
+                self.release == other.release)
+
+    def __repr__(self):
+        return "RPM(%s, %s, %s, %s)" % (self.name, self.arch, 
+                                        self.version, self.release)
+    
+    pass
+
 
 class VersionDB:
     def __init__(self):
@@ -14,14 +36,26 @@ class VersionDB:
                 (name, arch, version, release) = (
                     e[rpm.RPMTAG_NAME], e[rpm.RPMTAG_ARCH],
                     e[rpm.RPMTAG_VERSION], e[rpm.RPMTAG_RELEASE])
-                self.rpm[name] = (name, arch, version, release)
+                if not name in self.rpm:
+                    self.rpm[name] = []
+                    pass
+                self.rpm[name].append(RPM(name, arch, version, release))
             del read_ts
         except:
             pass
-
-
+        pass
+    
     def __getitem__(self, name):
         try:
-            return self.rpm[name]
+            if name in self.rpm:
+                return self.rpm[name]
+            name, arch = name.rsplit('.', 1)
+            for r in self.rpm[name]:
+                if arch == r.arch:
+                    return [r]
+                pass
+            return None
         except:
             return None
+        pass
+    pass