diff --git a/lib/unexpectedMessy.js b/lib/unexpectedMessy.js
index <HASH>..<HASH> 100644
--- a/lib/unexpectedMessy.js
+++ b/lib/unexpectedMessy.js
@@ -88,13 +88,13 @@ function bufferCanBeInterpretedAsUtf8(buffer) {
 }
 
 function expectMessageToSatisfy(expect, subject, value) {
+    subject.upgradeOrDowngradeBodyToMatchSpec(value);
     try {
         if (typeof value === 'string') {
             value = new messy.Message(value);
         }
         expect(subject.headers, 'to [exhaustively] satisfy', value.headers || {});
 
-        subject.upgradeOrDowngradeBodyToMatchSpec(value);
         if ('body' in value) {
             if (isRegExp(value.body)) {
                 expect(subject.body, 'to satisfy', value.body);
upgrade/downgrade the body before doing anything else so the diff will come out correctly in case of a header mismatch.