diff --git a/Makefile.am b/Makefile.am
index 137fb1edcb3d5004f2a035ee5f9f6041c1e9c12b..3445fc064d834671b0a8272a9e3f236735347151 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -246,3 +246,8 @@ mostlyclean-local:
 clean-local:
 	rm -rf $(top_builddir)/src/rust/target
 	rm -rf $(top_builddir)/src/rust/.cargo/registry
+
+if USE_RUST
+distclean-local: distclean-rust
+endif
+
diff --git a/src/rust/tor_rust/include.am b/src/rust/tor_rust/include.am
index 6bfec77fbf54887eb0bc28bb10b71691ad2e73f4..f3b0748bafb9bc84893187512b3fb8ecb3ef6a64 100644
--- a/src/rust/tor_rust/include.am
+++ b/src/rust/tor_rust/include.am
@@ -8,4 +8,11 @@ src/rust/target/release/@TOR_RUST_STATIC_NAME@: FORCE
 		CARGO_HOME="$(abs_top_builddir)/src/rust" \
 		$(CARGO) build --release --quiet $(CARGO_ONLINE) )
 
+distclean-rust:
+	( cd "$(abs_top_srcdir)/src/rust/tor_rust" ; \
+		CARGO_TARGET_DIR="$(abs_top_builddir)/src/rust/target" \
+		CARGO_HOME="$(abs_top_builddir)/src/rust" \
+		$(CARGO) clean --quiet $(CARGO_ONLINE) )
+	rm -rf "$(abs_top_builddir)/src/rust/registry"
+
 FORCE: