diff --git a/buildout/tests/assertSoftware.py b/buildout/tests/assertSoftware.py
index 4aa01cba7ae5eeb8f245169255b407e1dad4c8a5..62e5a6896d358ef3d48058b0221093af66083336 100644
--- a/buildout/tests/assertSoftware.py
+++ b/buildout/tests/assertSoftware.py
@@ -139,20 +139,22 @@ class AssertSoftwareMixin(unittest.TestCase):
     try:
       return unittest.TestCase.assertEqual(self, first, second, msg=msg)
     except unittest.TestCase.failureException:
-      if (msg is None) and \
-          isinstance(first, list) and \
+      if isinstance(first, list) and \
           isinstance(second, list):
-        msg = ''
+        err = ''
         for elt in first:
           if elt not in second:
-            msg += '- %s\n' % elt
+            err += '- %s\n' % elt
         for elt in second:
           if elt not in first:
-            msg += '+ %s\n' % elt
-        if msg == '':
+            err += '+ %s\n' % elt
+        if err == '':
           raise
         else:
-          msg = 'Lists are different:\n%s' % msg
+          if msg:
+            msg = '%s: Lists are different:\n%s' % (msg, err)
+          else:
+            msg = 'Lists are different:\n%s' % err
           raise unittest.TestCase.failureException, msg
       else:
         raise