diff --git a/Lib/test/test_hotshot.py b/Lib/test/test_hotshot.py
index 2751b3f..35ca6aa 100644
--- a/Lib/test/test_hotshot.py
+++ b/Lib/test/test_hotshot.py
@@ -3,6 +3,8 @@
 import os
 import pprint
 import unittest
+import _hotshot
+import gc
 
 from test import test_support
 
@@ -124,6 +126,10 @@
             if os.path.exists(test_support.TESTFN):
                 os.remove(test_support.TESTFN)
 
+    def test_logreader_eof_error(self):
+        self.assertRaises((IOError, EOFError), _hotshot.logreader, ".")
+        gc.collect()
+
 def test_main():
     test_support.run_unittest(HotShotTestCase)
 
diff --git a/Misc/NEWS b/Misc/NEWS
index a3da314..43f5ce7 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -32,6 +32,9 @@
 Library
 -------
 
+- Issue #3954: Fix a potential SystemError in _hotshot.logreader error
+  handling.
+
 - Issue #4574: fix a crash in io.IncrementalNewlineDecoder when a carriage
   return encodes to more than one byte in the source encoding (e.g. UTF-16)
   and gets split on a chunk boundary.
diff --git a/Modules/_hotshot.c b/Modules/_hotshot.c
index 4c66e2a..a36cd50 100644
--- a/Modules/_hotshot.c
+++ b/Modules/_hotshot.c
@@ -1357,20 +1357,16 @@
             self->logfp = fopen(filename, "rb");
             if (self->logfp == NULL) {
                 PyErr_SetFromErrnoWithFilename(PyExc_IOError, filename);
-                Py_DECREF(self);
-                self = NULL;
-                goto finally;
+                goto error;
             }
             self->info = PyDict_New();
-            if (self->info == NULL) {
-                Py_DECREF(self);
-                goto finally;
-            }
+            if (self->info == NULL)
+                goto error;
             /* read initial info */
             for (;;) {
                 if ((c = fgetc(self->logfp)) == EOF) {
                     eof_error(self);
-                    break;
+                    goto error;
                 }
                 if (c != WHAT_ADD_INFO) {
                     ungetc(c, self->logfp);
@@ -1383,13 +1379,15 @@
                     else
                         PyErr_SetString(PyExc_RuntimeError,
                                         "unexpected error");
-                    break;
+                    goto error;
                 }
             }
         }
     }
- finally:
     return (PyObject *) self;
+  error:
+    Py_DECREF(self);
+    return NULL;
 }
 
 
