Index: twisted/spread/pb.py
===================================================================
--- twisted/spread/pb.py	(revision 27844)
+++ twisted/spread/pb.py	(working copy)
@@ -1207,8 +1207,12 @@
 
 
 class IUsernameMD5Password(ICredentials):
-    """I encapsulate a username and a hashed password.
+    """
+    This class is redundant with
+    L{twisted.cred.credentials.IUsernameHashedPassword} and is deprecated.
 
+    I encapsulate a username and a hashed password.
+
     This credential is used for username/password over
     PB. CredentialCheckers which check this kind of credential must
     store the passwords in plaintext form or as a MD5 digest.
@@ -1216,9 +1220,20 @@
     @type username: C{str} or C{Deferred}
     @ivar username: The username associated with these credentials.
     """
+    def __init__(self):
+        """
+        This method exists solely to issue a deprecation warning.
+        """
+        warnings.warn(
+            "twisted.spread.pb.IUsernameMD5Password is deprecated "
+            "since Twisted 10.0",
+            category=DeprecationWarning,
+            stacklevel=2)
 
+
     def checkPassword(password):
-        """Validate these credentials against the correct password.
+        """
+        Validate these credentials against the correct password.
 
         @param password: The correct, plaintext password against which to
             check.
@@ -1227,8 +1242,10 @@
             password matches.
         """
 
+
     def checkMD5Password(password):
-        """Validate these credentials against the correct MD5 digest of password.
+        """
+        Validate these credentials against the correct MD5 digest of password.
 
         @param password: The correct, plaintext password against which to
             check.
@@ -1238,6 +1255,7 @@
         """
 
 
+
 class _PortalRoot:
     """Root object, used to login to portal."""
 
