diff --git a/pym/portage/tests/dep/test_best_match_to_list.py b/pym/portage/tests/dep/test_best_match_to_list.py
index 9cf5abd..58ab95b 100644
--- a/pym/portage/tests/dep/test_best_match_to_list.py
+++ b/pym/portage/tests/dep/test_best_match_to_list.py
@@ -1,7 +1,9 @@
 # test_best_match_to_list.py -- Portage Unit Testing Functionality
-# Copyright 2010 Gentoo Foundation
+# Copyright 2010-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
+from itertools import permutations
+
 from portage.tests import TestCase
 from portage.dep import Atom, best_match_to_list
 
@@ -13,6 +15,7 @@
 		list of matching atoms.
 		"""
 		ret = []
+		mylist = list(mylist)
 		while mylist:
 			m = best_match_to_list(mypkg, mylist)
 			if m is not None:
@@ -26,22 +29,29 @@
 	def testBest_match_to_list(self):
 		tests = [
 					("dev-libs/A-4", [Atom(">=dev-libs/A-3"), Atom(">=dev-libs/A-2")], \
-						[Atom(">=dev-libs/A-3"), Atom(">=dev-libs/A-2")]),
+						[Atom(">=dev-libs/A-3"), Atom(">=dev-libs/A-2")], True),
 					("dev-libs/A-4", [Atom("<=dev-libs/A-5"), Atom("<=dev-libs/A-6")], \
-						[Atom("<=dev-libs/A-5"), Atom("<=dev-libs/A-6")]),
+						[Atom("<=dev-libs/A-5"), Atom("<=dev-libs/A-6")], True),
 					("dev-libs/A-1", [Atom("dev-libs/A"), Atom("=dev-libs/A-1")], \
-						[Atom("=dev-libs/A-1"), Atom("dev-libs/A")]),
+						[Atom("=dev-libs/A-1"), Atom("dev-libs/A")], True),
 					("dev-libs/A-1", [Atom("dev-libs/B"), Atom("=dev-libs/A-1:0")], \
-						[Atom("=dev-libs/A-1:0")]),
+						[Atom("=dev-libs/A-1:0")], True),
 					("dev-libs/A-1", [Atom("dev-libs/*", allow_wildcard=True), Atom("=dev-libs/A-1:0")], \
-						[Atom("=dev-libs/A-1:0"), Atom("dev-libs/*", allow_wildcard=True)]),
+						[Atom("=dev-libs/A-1:0"), Atom("dev-libs/*", allow_wildcard=True)], True),
 					("dev-libs/A-1:0", [Atom("dev-*/*", allow_wildcard=True), Atom("dev-*/*:0", allow_wildcard=True),\
 						Atom("dev-libs/A"), Atom("<=dev-libs/A-2"), Atom("dev-libs/A:0"), \
 						Atom("=dev-libs/A-1*"), Atom("~dev-libs/A-1"), Atom("=dev-libs/A-1")], \
 						[Atom("=dev-libs/A-1"), Atom("~dev-libs/A-1"), Atom("=dev-libs/A-1*"), \
 						Atom("dev-libs/A:0"), Atom("<=dev-libs/A-2"), Atom("dev-libs/A"), \
-						Atom("dev-*/*:0", allow_wildcard=True), Atom("dev-*/*", allow_wildcard=True)])
+						Atom("dev-*/*:0", allow_wildcard=True), Atom("dev-*/*", allow_wildcard=True)], False)
 				]
 
-		for pkg, atom_list, result in tests:
-			self.assertEqual( self.best_match_to_list_wrapper( pkg, atom_list ), result )
+		for pkg, atom_list, result, all_permutations in tests:
+			if all_permutations:
+				atom_lists = permutations(atom_list)
+			else:
+				atom_lists = [atom_list]
+			for atom_list in atom_lists:
+				self.assertEqual(
+					self.best_match_to_list_wrapper(pkg, atom_list),
+					result)
