diff --git a/src/mio.py b/src/mio.py
index 53e2a0f27c29dfb9b3f33a8ae45fc02fa6a825e2..24b25d61b864b2e87ddc8054002cb72021d7573e 100755
--- a/src/mio.py
+++ b/src/mio.py
@@ -328,6 +328,7 @@ if __name__ == '__main__':
                 pass
             except Exception as e:
                 log(MUTE, "Failed to install rpm's, rerun with '--noyum'")
+                raise()
                 exit(1)
                 pass
         log(NORMAL, "Installing files")
diff --git a/src/mio/rpmDB.py b/src/mio/rpmDB.py
index 95bc885694d27bfb0eac6e4bf8914ab57cbfa28d..38a0495a6c2be7701757afa9d61818d6a82e1d5f 100755
--- a/src/mio/rpmDB.py
+++ b/src/mio/rpmDB.py
@@ -39,13 +39,32 @@ class VersionDB:
             for e in read_ts.dbMatch():
                 (name, arch, version, release) = (
                     e[rpm.RPMTAG_NAME].decode('utf-8'),
-                    e[rpm.RPMTAG_ARCH].decode('utf-8'),
+                    (e[rpm.RPMTAG_ARCH] or b'').decode('utf-8'),
                     e[rpm.RPMTAG_VERSION].decode('utf-8'),
                     e[rpm.RPMTAG_RELEASE].decode('utf-8'))
-                if not name in self.rpm:
-                    self.rpm[name] = []
+                theRPM = RPM(name, arch, version, release)
+                def add_rpm(name, rpm):
+                    if not name in self.rpm:
+                        self.rpm[name] = []
+                        pass
+                    self.rpm[name].append(rpm)
                     pass
-                self.rpm[name].append(RPM(name, arch, version, release))
+                def add_alias(name, alias, rpm):
+                    if name == alias:
+                        return
+                    if '(' in alias or '/' in alias:
+                        # Filter out specials and paths
+                        return
+                    add_rpm(alias, rpm)
+                    pass
+                add_rpm(name, theRPM)
+                for p in e['provides']:
+                    add_alias(name, p.decode('utf8'), theRPM)
+                    pass
+                # for o in e['obsoletes']:
+                #     add_alias(name, o.decode('utf8'), theRPM)
+                #     pass
+                pass
             del read_ts
         except:
             raise