git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3371 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
     diff = pos + GetIntPosition();
 
     if ( (diff > last_access) || (diff < 0) ) {
-      ret_off = m_stream->OnSysSeek(pos, wxFromCurrent);
+      // We must take into account the fact that we have read something
+      // previously.
+      if (diff < 0)
+        ret_off = m_stream->OnSysSeek(-(last_access-diff), wxFromCurrent);
+           // lastaccess + abs(diff) = lastaccess - diff here
+      else
+        ret_off = m_stream->OnSysSeek(diff-last_access, wxFromCurrent);
       ResetBuffer();
       return ret_off;
     } else {