diff --git a/p2pacman.py b/p2pacman.py
index 438a5c9769316eeca8719a2f854e5e8187af17b7..8b7c5846966f7760228a2e4a2b6875e4ce5d8fd9 100644
--- a/p2pacman.py
+++ b/p2pacman.py
@@ -104,26 +104,22 @@ class threadstart(threading.Thread):
                 package = torrent(self.path, self.link)
                 packages.append(package)
 
-os.system("pacman -Sy")
-print(":: Starting full system upgrade...")
-process = subprocess.Popen(['pacman', '-Sup'], shell=False, stdout=subprocess.PIPE)
-processret = str(process.communicate()[0])                          # get python stdout
-processret = processret.replace("pkg.tar.xz","pkg.tar.xz.torrent")  # append to every link .torrent
-
-matchObject = re.search(r'(http://.*.pkg.tar.xz.torrent)', processret)      # match all links
-if matchObject:
-    torrentlinks = matchObject.group(1).split("\\n")                        # split links into a tuple
-else:
+os.system("if [ -d /tmp/p2pacman ]; then fakeroot pacman -Sy --dbpath /tmp/p2pacman; else mkdir /tmp/p2pacman && ln -s /var/lib/pacman/local /tmp/p2pacman && fakeroot pacman -Sy --dbpath /tmp/p2pacman; fi")
+packages = os.popen("fakeroot pacman -Supb /tmp/p2pacman").readlines()[1:]
+
+if len(packages) == 0:
     print("no updates available")
     exit(0)
 
-print(" Downloading torrent metadata ...")
+print(":: Downloading torrent metadata ...")
 
-for link in torrentlinks:
+for link in packages:
+    link = link.replace('pkg.tar.xz\n','pkg.tar.xz.torrent')
+    print(link)
     try:
         r = requests.get(link)
     except:
-        print("error: mirror refues the connection, aborting.")
+        print("ERROR: Mirror refues the connection, aborting.")
         exit(1)
     if r.status_code == 200:
         with open("/var/cache/pacman/pkg/"+link.split('/')[-1], 'wb') as f:
@@ -131,13 +127,13 @@ for link in torrentlinks:
                 f.write(chunk)
             f.close
     else:
-        print("error: your mirror doesn't have proper torrent support")
+        print("ERROR: Your mirror doesn't have proper torrent support, aborting.")
         exit(1)
     thread = threadstart("/var/cache/pacman/pkg/"+link.split('/')[-1],link)
     thread.start()
     time.sleep(5)
 
-print(" Starting torrents ...")
+print(":: Starting torrents ...")
 
 package_count = len(packages)
 widgets = [PackageStat(), ' ', FileTransferSpeed(), '' ,
@@ -173,7 +169,7 @@ pbar.finish()
 
 
 print(" All downloads finished!")
-print(" Installing packages ...")
+print(":: Starting full system upgrade...""")
 
 links = ""
 for n, torrentlink in enumerate(torrentlinks):