diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 24a880fbdda51ca252513043c381f1b3485812b3..2e281e16356a1b16a67c42b6c7f94c4371b8aea2 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -2,7 +2,7 @@
  Change History
 ================
 
-3.9.0b2 (2009-07-02)
+3.9.0b2 (2009-07-??)
 ====================
 
 Bugs Fixed
@@ -11,6 +11,8 @@ Bugs Fixed
 - ZEO client threads were unnamed, making it hard to debug thread
   management.
 
+- ZEO protocol 2 support was broken.  This caused very old clients to
+  be unable to use new servers.
 
 3.9.0b2 (2009-06-11)
 ====================
diff --git a/src/ZEO/StorageServer.py b/src/ZEO/StorageServer.py
index 105e8a303cab53a42d4934eb838d4824e30eacb3..e3d2108b8d9d55e58d92bff9614b6ad28150adeb 100644
--- a/src/ZEO/StorageServer.py
+++ b/src/ZEO/StorageServer.py
@@ -1408,7 +1408,7 @@ class ZEOStorage308Adapter:
     abortVersion = commitVersion
 
     def zeoLoad(self, oid):             # Z200
-        p, s = self.storage,loadEx(oid)
+        p, s = self.storage.loadEx(oid)
         return p, s, '', None, None
 
     def __getattr__(self, name):
diff --git a/src/ZEO/tests/protocols.test b/src/ZEO/tests/protocols.test
index 599122064b2fe80f99e784408970a8d0beed59e8..fe53f157c89d074e46134b50837a7a4747e6a9b8 100644
--- a/src/ZEO/tests/protocols.test
+++ b/src/ZEO/tests/protocols.test
@@ -96,7 +96,7 @@ Note that when taking to a 3.8 server, iteration won't work:
     >>> os.remove('client-1.zec')
     >>> zope.testing.setupstack.rmtree('blobs')
     >>> zope.testing.setupstack.rmtree('server-blobs')
-    
+
 And the other way around:
 
     >>> addr, _ = start_server(storage_conf, dict(invalidation_queue_size=5))
@@ -165,6 +165,20 @@ Note that we'll have to pull some hijinks:
     >>> conn.root()['blob2'].open().read()
     'blob data 2'
 
+Make some old protocol calls:
+
+    >>> db.storage._server.rpc.call('getSerial', conn.root()._p_oid
+    ...      ) == conn.root()._p_serial
+    True
+
+    >>> p, s, v, x, y = db.storage._server.rpc.call('zeoLoad',
+    ...                                             conn.root()._p_oid)
+    >>> (v, x, y) == ('', None, None)
+    True
+    >>> db.storage.load(conn.root()._p_oid) == (p, s)
+    True
+
+
     >>> db2.close()
     >>> db.close()