diff --git a/trunk/NEWS.txt b/trunk/NEWS.txt
index 575ced56348e8ba783cfb66fad8c7c4258fd5214..774afb6be6f765b7c726d91f64bafed1ec68aff3 100644
--- a/trunk/NEWS.txt
+++ b/trunk/NEWS.txt
@@ -37,6 +37,15 @@ Connection
 Restored Connection's private ``_opened`` attribute.  This was still
 referenced by ``DB.connectionDebugInfo()``, and Zope 2 calls the latter.
 
+FileStorage
+-----------
+
+Collector #1517: History tab for ZPT does not work. ``FileStorage.history()``
+was reading the user, description, and extension fields out of the object
+pickle, due to starting the read at a wrong location.  Looked like
+cut-and-paste repetition of the same bug in ``FileStorage.FileIterator``
+noted in the news for 3.3c1.
+
 What's new in ZODB3 3.3 release candidate 1?
 ============================================
 Release date: 14-Sep-2004
diff --git a/trunk/src/ZODB/FileStorage/FileStorage.py b/trunk/src/ZODB/FileStorage/FileStorage.py
index 4cba5ca1bd5ac85e3183c59dff986edc68baf7f4..308ca861faf0590dada6b3c3e9195243f70c4479 100644
--- a/trunk/src/ZODB/FileStorage/FileStorage.py
+++ b/trunk/src/ZODB/FileStorage/FileStorage.py
@@ -1259,16 +1259,14 @@ class FileStorage(BaseStorage.BaseStorage,
                     wantver = None
 
                 th = self._read_txn_header(h.tloc)
-                user_name = self._file.read(th.ulen)
-                description = self._file.read(th.dlen)
-                if th.elen:
-                    d = loads(self._file.read(th.elen))
+                if th.ext:
+                    d = loads(th.ext)
                 else:
                     d = {}
 
                 d.update({"time": TimeStamp(h.tid).timeTime(),
-                          "user_name": user_name,
-                          "description": description,
+                          "user_name": th.user,
+                          "description": th.descr,
                           "tid": h.tid,
                           "version": h.version,
                           "size": h.plen,