diff --git a/lib/assertions.js b/lib/assertions.js
index <HASH>..<HASH> 100644
--- a/lib/assertions.js
+++ b/lib/assertions.js
@@ -198,9 +198,23 @@ module.exports = function (expect) {
             } catch (e) {
                 if (e._isUnexpected && this.flags.not) {
                     e.createDiff = function () {
-                        return expect.diff(subject, subject.replace(new RegExp(args.map(function (arg) {
+                        var output = expect.output.clone();
+                        var lastIndex = 0;
+                        function flushUntilIndex(i) {
+                            if (i > lastIndex) {
+                                output.text(subject.substring(lastIndex, i));
+                                lastIndex = i;
+                            }
+                        }
+                        subject.replace(new RegExp(args.map(function (arg) {
                             return utils.escapeRegExpMetaChars(String(arg));
-                        }).join('|'), 'g'), ''));
+                        }).join('|'), 'g'), function ($0, index) {
+                            flushUntilIndex(index);
+                            lastIndex += $0.length;
+                            output.text($0, 'red');
+                        });
+                        flushUntilIndex(subject.length);
+                        return {diff: output};
                     };
                 }
                 expect.fail(e);
not to contain: Implemented diff for the string case.