diff --git a/CHANGELOG.md b/CHANGELOG.md
index 449fd42376f9d36cc3a8ce7b9336caf059c1acc5..ff42fd55e944fbd2499569c5dfdfa554f266eb42 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,8 @@
 ## Unreleased
 
 + Fix bug with determining type of entries in v7 archives.
++ If given a gray stream that does not implement `stream-element-type`, assume
+  it is `(unsigned-byte 8)`.
 
 ## v0.1.2 - September 25, 2021
 
diff --git a/src/blocked-stream.lisp b/src/blocked-stream.lisp
index 3228b8d2dddc490894dc6af62ce62ff68897eb53..91113d601b21dd3f6d9f5598ca0d1280d671f64d 100644
--- a/src/blocked-stream.lisp
+++ b/src/blocked-stream.lisp
@@ -83,7 +83,8 @@ of the wrapped stream when instantiated."))
 (defmethod initialize-instance :after ((blocked-stream blocked-stream)
                                        &key
                                          stream)
-  (let ((element-type (stream-element-type stream)))
+  (let ((element-type (or (ignore-errors (stream-element-type stream))
+                          '(unsigned-byte 8))))
     (assert (subtypep element-type 'integer)
             nil "STREAM must be a binary stream")
     ;; Create the buffer.