diff --git a/Lib/email/quoprimime.py b/Lib/email/quoprimime.py
index 85efc08..7c7711e 100644
--- a/Lib/email/quoprimime.py
+++ b/Lib/email/quoprimime.py
@@ -135,9 +135,9 @@
     charset names the character set to use in the RFC 2046 header.  It
     defaults to iso-8859-1.
     """
-    # Return empty headers unchanged
+    # Return empty headers as an empty string.
     if not header_bytes:
-        return str(header_bytes)
+        return ''
     # Iterate over every byte, encoding if necessary.
     encoded = []
     for octet in header_bytes:
@@ -268,7 +268,7 @@
             if i == n:
                 decoded += eol
     # Special case if original string did not end with eol
-    if not encoded.endswith(eol) and decoded.endswith(eol):
+    if encoded[-1] not in '\r\n' and decoded.endswith(eol):
         decoded = decoded[:-1]
     return decoded
 
diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py
index f9a499f..cb3b0b3 100644
--- a/Lib/email/test/test_email.py
+++ b/Lib/email/test/test_email.py
@@ -2890,6 +2890,9 @@
             encoded_header = quoprimime.header_encode(header, charset)
         self.assertEqual(encoded_header, expected_encoded_header)
 
+    def test_header_encode_null(self):
+        self._test_header_encode(b'', '')
+
     def test_header_encode_one_word(self):
         self._test_header_encode(b'hello', '=?iso-8859-1?q?hello?=')
 
@@ -2946,6 +2949,15 @@
     def test_decode_one_line_lf(self):
         self._test_decode('hello\n', 'hello\n')
 
+    def test_decode_one_line_cr(self):
+        self._test_decode('hello\r', 'hello\n')
+
+    def test_decode_one_line_nl(self):
+        self._test_decode('hello\n', 'helloX', eol='X')
+
+    def test_decode_one_line_crnl(self):
+        self._test_decode('hello\r\n', 'helloX', eol='X')
+
     def test_decode_one_line_one_word(self):
         self._test_decode('hello\r\nworld', 'hello\nworld')
 
@@ -2955,6 +2967,9 @@
     def test_decode_two_lines(self):
         self._test_decode('hello\r\nworld\r\n', 'hello\nworld\n')
 
+    def test_decode_two_lines_eol(self):
+        self._test_decode('hello\r\nworld\r\n', 'helloXworldX', eol='X')
+
     def test_decode_one_long_line(self):
         self._test_decode('Spam' * 250, 'Spam' * 250)
 
