diff --git a/Lib/poplib.py b/Lib/poplib.py
index 770819e..1a529d0 100644
--- a/Lib/poplib.py
+++ b/Lib/poplib.py
@@ -282,7 +282,7 @@
 
         NB: mailbox is locked by server from here to 'quit()'
         """
-        secret = bytes(secret, self.encoding)
+        secret = bytes(password, self.encoding)
         m = self.timestamp.match(self.welcome)
         if not m:
             raise error_proto('-ERR APOP not supported by server')
diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
index 7f36115..520c20f 100644
--- a/Lib/test/test_poplib.py
+++ b/Lib/test/test_poplib.py
@@ -36,7 +36,7 @@
         asynchat.async_chat.__init__(self, conn)
         self.set_terminator(b"\r\n")
         self.in_buffer = []
-        self.push('+OK dummy pop3 server ready.')
+        self.push('+OK dummy pop3 server ready. <timestamp>')
 
     def collect_incoming_data(self, data):
         self.in_buffer.append(data)
@@ -104,6 +104,9 @@
     def cmd_rpop(self, arg):
         self.push('+OK done nothing.')
 
+    def cmd_apop(self, arg):
+        self.push('+OK done nothing.')
+
 
 class DummyPOP3Server(asyncore.dispatcher, threading.Thread):
 
@@ -169,7 +172,8 @@
         self.server.stop()
 
     def test_getwelcome(self):
-        self.assertEqual(self.client.getwelcome(), b'+OK dummy pop3 server ready.')
+        self.assertEqual(self.client.getwelcome(),
+                         b'+OK dummy pop3 server ready. <timestamp>')
 
     def test_exceptions(self):
         self.assertRaises(poplib.error_proto, self.client._shortcmd, 'echo -err')
@@ -209,6 +213,9 @@
     def test_rpop(self):
         self.assertOK(self.client.rpop('foo'))
 
+    def test_apop(self):
+        self.assertOK(self.client.apop('foo', 'dummypassword'))
+
     def test_top(self):
         expected =  (b'+OK 116 bytes',
                      [b'From: postmaster@python.org', b'Content-Type: text/plain',
@@ -239,7 +246,7 @@
             self.set_socket(ssl_socket)
             self.set_terminator(b"\r\n")
             self.in_buffer = []
-            self.push('+OK dummy pop3 server ready.')
+            self.push('+OK dummy pop3 server ready. <timestamp>')
 
     class TestPOP3_SSLClass(TestPOP3Class):
         # repeat previous tests by using poplib.POP3_SSL
