diff --git a/pamac/transaction.py b/pamac/transaction.py
index e16f2afe302460f6407e51a6de33a267918513a2..cadc6b696b82a10c815153af8d19a001bbff4330 100755
--- a/pamac/transaction.py
+++ b/pamac/transaction.py
@@ -95,6 +95,7 @@ def check_conflicts():
 	installed_pkg_name = []
 	syncdbs_pkg_name = []
 	depends = []
+	provides = {}
 	warning = ''
 	for pkgname in to_add:
 		for repo in handle.get_syncdbs():
@@ -105,31 +106,28 @@ def check_conflicts():
 	for installed_pkg in handle.get_localdb().pkgcache:
 		installed_pkg_name.append(installed_pkg.name)
 	for target in to_check:
-		if target.depends:
-			for name in target.depends:
-				depends.append(name)
-		if target.replaces:
-			for name in target.replaces:
-				if name in installed_pkg_name:
-					if not name in to_remove:
-						to_remove.append(name)
-						if warning:
-							warning = warning+'\n'
-						warning = warning+name+' will be replaced by '+target.name
-		if target.conflicts:
-			for name in target.conflicts:
-				if name in to_add:
-					to_add.remove(name)
-					to_add.remove(target.name)
+		for name in target.depends:
+			depends.append(name)
+		for name in target.replaces:
+			if name in installed_pkg_name:
+				if not name in to_remove:
+					to_remove.append(name)
 					if warning:
 						warning = warning+'\n'
-					warning = warning+name+' conflicts with '+target.name+'\nNone of them will be installed'
-				if name in installed_pkg_name:
-					if not name in to_remove:
-						to_remove.append(name)
-						if warning:
-							warning = warning+'\n'
-						warning = warning+name+' conflicts with '+target.name
+					warning = warning+name+' will be replaced by '+target.name
+		for name in target.conflicts:
+			if name in to_add:
+				to_add.remove(name)
+				to_add.remove(target.name)
+				if warning:
+					warning = warning+'\n'
+				warning = warning+name+' conflicts with '+target.name+'\nNone of them will be installed'
+			if name in installed_pkg_name:
+				if not name in to_remove:
+					to_remove.append(name)
+					if warning:
+						warning = warning+'\n'
+					warning = warning+name+' conflicts with '+target.name
 		for installed_pkg in handle.get_localdb().pkgcache:
 			if installed_pkg.conflicts:
 				for name in installed_pkg.conflicts:
@@ -143,19 +141,28 @@ def check_conflicts():
 				depends.remove(installed_pkg.name)
 	for repo in handle.get_syncdbs():
 		for pkg in repo.pkgcache:
-			if pkg.replaces:
-				for name in pkg.replaces:
-					if name == installed_pkg_name:
-						if not name in to_remove:
-							to_remove.append(name)
-							if warning:
-								warning = warning+'\n'
-							warning = warning+name+' will be replaced by '+pkg.name
-						if not pkg.name in to_add:
-							to_add.append(pkg.name)
+			for name in pkg.replaces:
+				if name in installed_pkg_name:
+					if not name in to_remove:
+						to_remove.append(name)
+						if warning:
+							warning = warning+'\n'
+						warning = warning+name+' will be replaced by '+pkg.name
+					if not pkg.name in to_add:
+						to_add.append(pkg.name)
 			if pkg.name in depends:
 				depends.remove(pkg.name)
-	print(depends)
+	if depends:
+		for repo in handle.get_syncdbs():
+			for pkg in repo.pkgcache:
+				for depend in depends:
+					for name in pkg.provides:
+						if name == depend:
+							if not provides.__contains__(depend):
+								provides[depend] = []
+							provides.get(depend).append(pkg.name)
+	if provides:
+		print(provides)
 	if warning:
 		WarningDialog.format_secondary_text(warning)
 		response = WarningDialog.run()