diff --git a/rust/hg-cpython/src/revlog.rs b/rust/hg-cpython/src/revlog.rs
index 952e3cd7568f503425fd343cce04a84b6d09c801_cnVzdC9oZy1jcHl0aG9uL3NyYy9yZXZsb2cucnM=..b67cd0d0e97627a6993c9969dfd0563fbb68c9fc_cnVzdC9oZy1jcHl0aG9uL3NyYy9yZXZsb2cucnM= 100644
--- a/rust/hg-cpython/src/revlog.rs
+++ b/rust/hg-cpython/src/revlog.rs
@@ -324,6 +324,9 @@
                 Ok(rev >= -1 && rev < self.len(py)? as BaseRevision)
             }
             Err(_) => {
-                cindex.inner().call_method(
+                let item_bytes: PyBytes = item.extract(py)?;
+                let rust_res = self.has_node(py, item_bytes)?;
+
+                let c_res = cindex.inner().call_method(
                     py,
                     "has_node",
@@ -328,4 +331,4 @@
                     py,
                     "has_node",
-                    PyTuple::new(py, &[item]),
+                    PyTuple::new(py, &[item.clone_ref(py)]),
                     None)?
@@ -331,5 +334,8 @@
                     None)?
-                .extract(py)
+                .extract(py)?;
+
+                assert_eq!(rust_res, c_res);
+                Ok(rust_res)
             }
         }
     }