diff --git a/docs/src/dev/how_it_works.md b/docs/src/dev/how_it_works.md
index 9b68d6ca..fc923d2d 100644
--- a/docs/src/dev/how_it_works.md
+++ b/docs/src/dev/how_it_works.md
@@ -52,7 +52,7 @@ overloading a plethora of elementary functions, we can differentiate generic fun
 composed of them by passing in a `Dual` number and looking at the output.
 
 We won't discuss higher-order differentiation in detail, but the reader is encouraged to
-learn about [hyper-dual numbers](https://adl.stanford.edu/hyperdual/Fike_AIAA-2011-886.pdf),
+learn about [hyper-dual numbers](https://arc.aiaa.org/doi/abs/10.2514/6.2011-886),
 which extend dual numbers to higher orders by introducing extra ``\epsilon`` terms that can
 cross-multiply. ForwardDiff's `Dual` number implementation naturally supports hyper-dual
 numbers without additional code by allowing instances of the `Dual` type to nest within each