diff --git a/basis/checksums/common/common.factor b/basis/checksums/common/common.factor
index aaa2e97357..77be6761f7 100644
--- a/basis/checksums/common/common.factor
+++ b/basis/checksums/common/common.factor
@@ -50,7 +50,7 @@ GENERIC: get-checksum ( checksum-state -- value )
         ] while
         >byte-vector >>bytes
     ] keep
-    length [ + ] curry change-bytes-read ;
+    length 64 mod [ + ] curry change-bytes-read ;
 
 : add-checksum-stream ( checksum-state stream -- checksum-state )
     [ [ add-checksum-bytes ] each-block ] with-input-stream ;
diff --git a/basis/checksums/sha/sha-tests.factor b/basis/checksums/sha/sha-tests.factor
index 08be4db777..982a2caf17 100644
--- a/basis/checksums/sha/sha-tests.factor
+++ b/basis/checksums/sha/sha-tests.factor
@@ -73,5 +73,5 @@ CONSTANT: bytes-a B{ 0 1 0 0 0 0 0 0 }
 CONSTANT: bytes-b B{ 1 2 3 4 5 6 7 8 }
 { t } [
     sha1 initialize-checksum-state bytes-a bytes-b append add-checksum-bytes get-checksum
-    sha1 initialize-checksum-state bytes-a add-checksum-bytes bytes-b add-checksum-bytes get-checksum
+    sha1 initialize-checksum-state bytes-a add-checksum-bytes bytes-b add-checksum-bytes get-checksum =
 ] unit-test