| Index: pkg/unittest/lib/src/expect.dart
 | 
| diff --git a/pkg/unittest/lib/src/expect.dart b/pkg/unittest/lib/src/expect.dart
 | 
| index 3542f7a8bf03586a04e96d7b031948455f2eb177..f10309dec55500c7f4c244a8e385667623b5d9c8 100644
 | 
| --- a/pkg/unittest/lib/src/expect.dart
 | 
| +++ b/pkg/unittest/lib/src/expect.dart
 | 
| @@ -137,28 +137,15 @@ ErrorFormatter _assertErrorFormatter = null;
 | 
|  String _defaultErrorFormatter(actual, Matcher matcher, String reason,
 | 
|      MatchState matchState, bool verbose) {
 | 
|    var description = new StringDescription();
 | 
| -  description.add('Expected: ').addDescriptionOf(matcher).
 | 
| -      add('\n     but: ');
 | 
| -  matcher.describeMismatch(actual, description, matchState, verbose);
 | 
| -  description.add('.\n');
 | 
| -  if (verbose) {
 | 
| -    if (actual is Iterable) {
 | 
| -      description.add('Actual: ').addDescriptionOf(actual).add('\n');
 | 
| -    } else if (actual is Map) {
 | 
| -      description.add('Actual: ');
 | 
| -      var count = 25;
 | 
| -      for (var k in actual.keys) {
 | 
| -        if (count == 0) {
 | 
| -          description.add('...\n');
 | 
| -          break;
 | 
| -        }
 | 
| -        description.addDescriptionOf(k);
 | 
| -        description.add(' : ');
 | 
| -        description.addDescriptionOf(actual[k]);
 | 
| -        description.add('\n');
 | 
| -        --count;
 | 
| -      }
 | 
| -    }
 | 
| +  description.add('Expected: ').addDescriptionOf(matcher).add('\n');
 | 
| +
 | 
| +  var mismatchDescription = new StringDescription();
 | 
| +  matcher.describeMismatch(actual, mismatchDescription, matchState, verbose);
 | 
| +  description.add('     But: ')
 | 
| +      .add(mismatchDescription.toString()).add('.\n');
 | 
| +
 | 
| +  if (!mismatchDescription.toString().startsWith("was ")) {
 | 
| +    description.add('Actual: ').addDescriptionOf(actual);
 | 
|    }
 | 
|    if (reason != null) {
 | 
|      description.add(reason).add('\n');
 | 
| 
 |