diff --git a/crates/tor-netdoc/src/err.rs b/crates/tor-netdoc/src/err.rs
index ec2c5517e0b797000f9f00dda0372c7ee7c14ab6..6cda0230041686cab4c24b5485c5ead9607966b8 100644
--- a/crates/tor-netdoc/src/err.rs
+++ b/crates/tor-netdoc/src/err.rs
@@ -431,10 +431,7 @@ impl fmt::Display for Error {
 
 impl std::error::Error for Error {
     fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
-        match &self.source {
-            Some(e) => Some(e),
-            None => None,
-        }
+        self.source.as_ref().map(|s| s as _)
     }
 }