diff --git a/lib/xenu_nntp/session.py b/lib/xenu_nntp/session.py
index 7f8aee2..5e794aa 100644
--- a/lib/xenu_nntp/session.py
+++ b/lib/xenu_nntp/session.py
@@ -649,32 +649,24 @@ class Session(Connection):
         int_bytes = len(bytes(message.content, 'utf-8'))
         int_lines = message.body.count('\n') - 2
 
+        def _or(a, b):
+            return a if a is not None else b
+
+        xref = message.headers.get('Xref')
+
         parts = [
             str(message.id),
             email.header.Header(message.subject).encode(),
             email.header.Header(message.sender).encode(),
             email.utils.format_datetime(message.created_on),
-            message.message_id,
-            message.reference_ids or '',
+            _or(message.message_id, ''),
+            _or(message.reference_ids, ''),
             str(int_bytes),
             str(int_lines),
         ]
 
-        HEADERS_SKIP = {
-            'subject':    True,
-            'from':       True,
-            'date':       True,
-            'message-id': True,
-            'references': True,
-        }
-
-        for k in message.headers:
-            if k.casefold() in HEADERS_SKIP:
-                continue
-
-            parts.append("%s: %s" % (
-                k, message.headers[k]
-            ))
+        if xref is not None:
+            parts.append('Xref: %s' % xref)
 
         return map(f, parts)