diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py
index 469690b..cadf1c7 100644
--- a/Lib/collections/__init__.py
+++ b/Lib/collections/__init__.py
@@ -1200,12 +1200,10 @@
         if isinstance(sub, UserString):
             sub = sub.data
         return self.data.count(sub, start, end)
-    def encode(self, encoding=None, errors=None): # XXX improve this?
-        if encoding:
-            if errors:
-                return self.__class__(self.data.encode(encoding, errors))
-            return self.__class__(self.data.encode(encoding))
-        return self.__class__(self.data.encode())
+    def encode(self, encoding='utf-8', errors='strict'):
+        encoding = 'utf-8' if encoding is None else encoding
+        errors = 'strict' if errors is None else errors
+        return self.data.encode(encoding, errors)
     def endswith(self, suffix, start=0, end=_sys.maxsize):
         return self.data.endswith(suffix, start, end)
     def expandtabs(self, tabsize=8):
diff --git a/Lib/test/test_userstring.py b/Lib/test/test_userstring.py
index 19b0acf..4d1d8b6 100644
--- a/Lib/test/test_userstring.py
+++ b/Lib/test/test_userstring.py
@@ -51,6 +51,20 @@
         str3 = ustr3('TEST')
         self.assertEqual(fmt2 % str3, 'value is TEST')
 
+    def test_encode_default_args(self):
+        self.checkequal(b'hello', 'hello', 'encode')
+        # Check that encoding defaults to utf-8
+        self.checkequal(b'\xf0\xa3\x91\x96', '\U00023456', 'encode')
+        # Check that errors defaults to 'strict'
+        self.checkraises(UnicodeError, '\ud800', 'encode')
+
+    def test_encode_explicit_none_args(self):
+        self.checkequal(b'hello', 'hello', 'encode', None, None)
+        # Check that encoding defaults to utf-8
+        self.checkequal(b'\xf0\xa3\x91\x96', '\U00023456', 'encode', None, None)
+        # Check that errors defaults to 'strict'
+        self.checkraises(UnicodeError, '\ud800', 'encode', None, None)
+
 
 if __name__ == "__main__":
     unittest.main()
