Test --prune with virtual slots.
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index 82adca7..08f70df 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -706,7 +706,8 @@
 		# that are also matched by argument atoms, but do not remove
 		# them if they match the highest installed version.
 		for pkg in vardb:
-			spinner.update()
+			if spinner is not None:
+				spinner.update()
 			pkgs_for_cp = vardb.match_pkgs(pkg.cp)
 			if not pkgs_for_cp or pkg not in pkgs_for_cp:
 				raise AssertionError("package expected in matches: " + \
diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/portage/tests/resolver/ResolverPlayground.py
index adf03d2..a73f632 100644
--- a/pym/portage/tests/resolver/ResolverPlayground.py
+++ b/pym/portage/tests/resolver/ResolverPlayground.py
@@ -511,6 +511,12 @@
 		if self.debug:
 			options["--debug"] = True
 
+		if action is None:
+			if options.get("--depclean"):
+				action = "depclean"
+			elif options.get("--prune"):
+				action = "prune"
+
 		global_noiselimit = portage.util.noiselimit
 		global_emergelog_disable = _emerge.emergelog._disable
 		try:
@@ -519,10 +525,10 @@
 				portage.util.noiselimit = -2
 			_emerge.emergelog._disable = True
 
-			if options.get("--depclean"):
+			if action in ("depclean", "prune"):
 				rval, cleanlist, ordered, req_pkg_count = \
 					calc_depclean(self.settings, self.trees, None,
-					options, "depclean", InternalPackageSet(initial_atoms=atoms, allow_wildcard=True), None)
+					options, action, InternalPackageSet(initial_atoms=atoms, allow_wildcard=True), None)
 				result = ResolverPlaygroundDepcleanResult( \
 					atoms, rval, cleanlist, ordered, req_pkg_count)
 			else:
diff --git a/pym/portage/tests/resolver/test_virtual_slot.py b/pym/portage/tests/resolver/test_virtual_slot.py
index 4ea6677..1b19d77 100644
--- a/pym/portage/tests/resolver/test_virtual_slot.py
+++ b/pym/portage/tests/resolver/test_virtual_slot.py
@@ -123,6 +123,13 @@
 				options = {"--depclean" : True},
 				success = True,
 				cleanlist = []),
+
+			# Prune redundant lower slots, even if they are in world.
+			ResolverPlaygroundTestCase(
+				[],
+				options = {"--prune" : True},
+				success = True,
+				cleanlist = ['virtual/jdk-1.6.0', 'dev-java/icedtea-6.1.10.3']),
 		)
 
 		playground = ResolverPlayground(