diff --git a/lib/spack/spack/test/mock_packages/multimethod.py b/lib/spack/spack/test/mock_packages/multimethod.py
index fa8497eafc45f0fa3fbf08d37e55a94eb4606f8f..e5c2f5243e6a698ae81ca34857d7ca3852331968 100644
--- a/lib/spack/spack/test/mock_packages/multimethod.py
+++ b/lib/spack/spack/test/mock_packages/multimethod.py
@@ -92,10 +92,9 @@ def different_by_dep(self):
     #
     # Make sure we can switch on virtual dependencies
     #
-    @when('^mpi@2:')
     def different_by_virtual_dep(self):
-        return 'mpi@2:'
+        return 1
 
-    @when('^mpi@:1')
+    @when('^mpi@2:')
     def different_by_virtual_dep(self):
-        return 'mpi@:1'
+        return 2
diff --git a/lib/spack/spack/test/multimethod.py b/lib/spack/spack/test/multimethod.py
index 4627e06142424bf95246f41c58113f3fb48992c1..969c987da854b4c97bf1ae5aff62295f8a6a8f37 100644
--- a/lib/spack/spack/test/multimethod.py
+++ b/lib/spack/spack/test/multimethod.py
@@ -76,9 +76,9 @@ def test_ambiguous_dep(self):
         self.assertRaises(AmbiguousMethodError, pkg.different_by_dep)
 
 
-    def test_one_dep_match(self):
-        pass
+    def test_virtual_dep_match(self):
+        pkg = packages.get('multimethod^mpich2')
+        self.assertEqual(pkg.different_by_virtual_dep(), 2)
 
-
-    def test_one_dep_match(self):
-        pass
+        pkg = packages.get('multimethod^mpich@1.0')
+        self.assertEqual(pkg.different_by_virtual_dep(), 1)