diff --git a/redirects/associated-types.md b/redirects/associated-types.md
index 6c259ccd25..4083f93986 100644
--- a/redirects/associated-types.md
+++ b/redirects/associated-types.md
@@ -20,4 +20,4 @@ Here are the relevant sections in the new and old books:
[1]: first-edition/associated-types.html
-[2]: second-edition/ch19-03-advanced-traits.html#associated-types
+[2]: second-edition/ch19-03-advanced-traits.html#associated-types-specify-placeholder-types-in-trait-definitions
diff --git a/redirects/casting-between-types.md b/redirects/casting-between-types.md
index 7aeaf86f22..9d773149aa 100644
--- a/redirects/casting-between-types.md
+++ b/redirects/casting-between-types.md
@@ -20,13 +20,13 @@ fn average(values: &[f64]) -> f64 {
Here are the relevant sections in the new and old books:
-* **[In the second edition: Appendix B — Operators, section Type Cast Expressions][2]**
+* **[In the second edition: Appendix A — Keywords][2]**
* [In the Rust Reference: Type Cast Expressions][3]
* [In the Rust documentation: `mem::transmute`][4]
* [In the first edition: Ch 3.29 — Casting between types][1]
[1]: first-edition/casting-between-types.html
-[2]: second-edition/appendix-02-operators.html#type-cast-expressions
+[2]: second-edition/appendix-01-keywords.html
[3]: ../reference/expressions/operator-expr.html#type-cast-expressions
[4]: ../std/mem/fn.transmute.html
\ No newline at end of file
diff --git a/redirects/compiler-plugins.md b/redirects/compiler-plugins.md
index fafeda3ea6..66061adf5a 100644
--- a/redirects/compiler-plugins.md
+++ b/redirects/compiler-plugins.md
@@ -9,8 +9,5 @@
This particular chapter has moved to [the Unstable Book][2].
* **[In the Unstable Rust Book: `plugin`][2]**
-* [In the first edition: Compiler Plugins][1] (does not exist anymore)
-
-[1]: first-edition/compiler-plugins.html
[2]: ../unstable-book/language-features/plugin.html
diff --git a/redirects/conditional-compilation.md b/redirects/conditional-compilation.md
index 24deb11c2b..4e88da53b4 100644
--- a/redirects/conditional-compilation.md
+++ b/redirects/conditional-compilation.md
@@ -24,5 +24,5 @@ The best place to learn about it is [the Rust Reference][3].
[1]: first-edition/conditional-compilation.html
-[2]: second-edition/
+[2]: second-edition/index.html
[3]: ../reference/attributes.html#conditional-compilation
diff --git a/redirects/effective-rust.md b/redirects/effective-rust.md
index 60ca55d64b..5c93d84b79 100644
--- a/redirects/effective-rust.md
+++ b/redirects/effective-rust.md
@@ -11,4 +11,4 @@ It is recommended to start there.
[1]: first-edition/effective-rust.html
-[2]: second-edition/
+[2]: second-edition/index.html
diff --git a/redirects/ffi.md b/redirects/ffi.md
index 1acb32b01f..8a885928af 100644
--- a/redirects/ffi.md
+++ b/redirects/ffi.md
@@ -26,4 +26,4 @@ Here are the relevant sections in the new and old books:
[1]: first-edition/ffi.html
-[2]: second-edition/ch19-01-unsafe-rust.html#extern--functions-for-calling-external-code-are-unsafe
+[2]: second-edition/ch19-01-unsafe-rust.html#using-extern-functions-to-call-external-code
diff --git a/redirects/glossary.md b/redirects/glossary.md
index c0fd384abd..6891dc1e05 100644
--- a/redirects/glossary.md
+++ b/redirects/glossary.md
@@ -11,4 +11,4 @@ It is recommended to start there.
[1]: first-edition/glossary.html
-[2]: second-edition/
+[2]: second-edition/index.html
diff --git a/redirects/macros.md b/redirects/macros.md
index d1f7369b9e..d2c83ac500 100644
--- a/redirects/macros.md
+++ b/redirects/macros.md
@@ -21,11 +21,11 @@ You can check out other resources that describe macros.
* **[Rust By Example: Macros][3]**
* [In the Rust Reference: Ch 3.1 — Macros by Example][4]
-* [In the second edition: (future) Appendix E — Macros][2]
+* [In the second edition: (future) Appendix D — Macros][2]
* [In the first edition: Ch 3.34 — Macros][1]
[1]: first-edition/macros.html
-[2]: second-edition/appendix-05-macros.html
+[2]: second-edition/appendix-04-macros.html
[3]: https://rustbyexample.com/macros.html
[4]: ../reference/macros-by-example.html
\ No newline at end of file
diff --git a/redirects/operators-and-overloading.md b/redirects/operators-and-overloading.md
index 6cb8899b52..8094325e17 100644
--- a/redirects/operators-and-overloading.md
+++ b/redirects/operators-and-overloading.md
@@ -39,5 +39,5 @@ Here are the relevant sections in the new and old books:
* [In the first edition: Ch 3.32 — Operators and Overloading][1]
[1]: first-edition/operators-and-overloading.html
-[2]: second-edition/ch19-03-advanced-traits.html#operator-overloading-and-default-type-parameters
-[3]: ../std/ops/
+[2]: second-edition/ch19-03-advanced-traits.html#default-generic-type-parameters-and-operator-overloading
+[3]: ../std/ops/index.html
diff --git a/redirects/procedural-macros.md b/redirects/procedural-macros.md
index 66a7d463e2..4cf8ec6b65 100644
--- a/redirects/procedural-macros.md
+++ b/redirects/procedural-macros.md
@@ -11,11 +11,11 @@ You can check out other resources that describe macros.
* **[In the Rust Reference: Ch 3.2 — Procedural Macros][4]**
* [The `proc_macro` crate documentation][3]
-* [In the second edition: (future) Appendix E — Macros][2]
+* [In the second edition: (future) Appendix D — Macros][2]
* [In the first edition: Ch 4.13 — Procedural Macros (and custom Derive)][1]
[1]: first-edition/procedural-macros.html
-[2]: second-edition/appendix-05-macros.html
-[3]: ../stable/proc_macro/index.html
+[2]: second-edition/appendix-04-macros.html
+[3]: ../proc_macro/index.html
[4]: ../reference/procedural-macros.html
\ No newline at end of file
diff --git a/redirects/release-channels.md b/redirects/release-channels.md
index 8c209e0e60..f54bbc21de 100644
--- a/redirects/release-channels.md
+++ b/redirects/release-channels.md
@@ -16,12 +16,12 @@ You can check out other resources that describe release channels.
* **[In the Rustup documentation: Keeping Rust Up-to-date][4]**
* [On the website: Install Rust][5]
* [In the Rust RFCs: RFC 507 — Release Channels][3]
-* [In the second edition: (future) Appendix D — Nightly Rust][2]
+* [In the second edition: How Rust is Made and “Nightly Rust”][2]
* [In the first edition: Ch 4.11 — Release Channels][1]
[1]: first-edition/release-channels.html
-[2]: second-edition/appendix-04-nightly-rust.html
+[2]: second-edition/ch01-03-how-rust-is-made-and-nightly-rust.html
[3]: https://github.com/rust-lang/rfcs/blob/master/text/0507-release-channels.md
[4]: https://github.com/rust-lang-nursery/rustup.rs/blob/master/README.md#keeping-rust-up-to-date
[5]: https://www.rust-lang.org/en-US/install.html
diff --git a/redirects/ufcs.md b/redirects/ufcs.md
index 1d530ca179..eca6e6a9d9 100644
--- a/redirects/ufcs.md
+++ b/redirects/ufcs.md
@@ -51,4 +51,4 @@ Here are the relevant sections in the new and old books:
[1]: first-edition/ufcs.html
-[2]: second-edition/ch19-03-advanced-traits.html#fully-qualified-syntax-for-disambiguation
+[2]: second-edition/ch19-03-advanced-traits.html#fully-qualified-syntax-for-disambiguation-calling-methods-with-the-same-name
diff --git a/redirects/unsafe.md b/redirects/unsafe.md
index c14b414234..73685fc83d 100644
--- a/redirects/unsafe.md
+++ b/redirects/unsafe.md
@@ -15,4 +15,4 @@ Here are the relevant sections in the new and old books:
[1]: first-edition/unsafe.html
[2]: second-edition/ch19-01-unsafe-rust.html
-[3]: ../nomicon/
+[3]: ../nomicon/index.html