diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 2df1587..bb978e8 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
 {
   "git": {
-    "sha1": "203c6bc19e561da1734873794bbd420e0bfc79b9"
+    "sha1": "ff542c67023cbddbb2198df4087abc6aa6c8d5b7"
   }
 }
diff --git a/Android.bp b/Android.bp
index f836735..595a2f2 100644
--- a/Android.bp
+++ b/Android.bp
@@ -22,18 +22,17 @@
 //   ansi_term-0.11.0
 //   atty-0.2.14
 //   bitflags-1.2.1 "default"
-//   clap-2.33.1 "ansi_term,atty,color,default,strsim,suggestions,vec_map"
+//   clap-2.33.3 "ansi_term,atty,color,default,strsim,suggestions,vec_map"
 //   heck-0.3.1
 //   lazy_static-1.4.0
-//   libc-0.2.74
-//   proc-macro-error-1.0.3
-//   proc-macro-error-attr-1.0.3
-//   proc-macro2-1.0.19 "default,proc-macro"
+//   libc-0.2.77
+//   proc-macro-error-1.0.4 "default,syn,syn-error"
+//   proc-macro-error-attr-1.0.4
+//   proc-macro2-1.0.21 "default,proc-macro"
 //   quote-1.0.7 "default,proc-macro"
 //   strsim-0.8.0
-//   structopt-derive-0.4.7
-//   syn-1.0.36 "clone-impls,default,derive,full,parsing,printing,proc-macro,quote,visit"
-//   syn-mid-0.5.0
+//   structopt-derive-0.4.11
+//   syn-1.0.41 "clone-impls,default,derive,full,parsing,printing,proc-macro,quote,visit"
 //   textwrap-0.11.0
 //   unicode-segmentation-1.6.0
 //   unicode-width-0.1.8 "default"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 22dca96..ae28950 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,27 @@
+# v0.3.18 (2020-09-23)
+
+* Unsafe code [has been forbidden](https://github.com/TeXitoi/structopt/issues/432). This makes
+  [`cargo geiger`](https://github.com/rust-secure-code/cargo-geiger) list structopt as "safe".
+  Maybe it will help somebody trying to locate a bug in their dependency tree.
+
+# v0.3.17 (2020-08-25)
+
+* Fixed [a breakage](https://github.com/TeXitoi/structopt/issues/424) with resent rustc versions
+  due to `quote_spanned` misuse.
+
+# v0.3.16 (2020-08-05)
+
+* Added [the new example](https://github.com/TeXitoi/structopt/blob/master/examples/required_if.rs).
+* Allow `#[structopt(flatten)]` fields to have doc comments. The comments are ignored.
+* The `paw` crate is now being reexported when `paw` feature is enabled,
+  see [`#407`](https://github.com/TeXitoi/structopt/issues/407).
+
+# v0.3.15 (2020-06-16)
+
+* Minor documentation improvements.
+* Fixed [a latent bug](https://github.com/TeXitoi/structopt/pull/398),
+  courtesy of [@Aaron1011](https://github.com/Aaron1011).
+
 # v0.3.14 (2020-04-22)
 
 * Minor documentation improvements.
diff --git a/Cargo.toml b/Cargo.toml
index 28d6d4b..0b796d0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,14 +13,14 @@
 [package]
 edition = "2018"
 name = "structopt"
-version = "0.3.14"
+version = "0.3.18"
 authors = ["Guillaume Pinot <texitoi@texitoi.eu>", "others"]
 description = "Parse command line argument by defining a struct."
 documentation = "https://docs.rs/structopt"
 readme = "README.md"
 keywords = ["clap", "cli", "derive", "docopt"]
 categories = ["command-line-interface"]
-license = "Apache-2.0/MIT"
+license = "Apache-2.0 OR MIT"
 repository = "https://github.com/TeXitoi/structopt"
 [dependencies.clap]
 version = "2.33"
@@ -29,8 +29,13 @@
 [dependencies.lazy_static]
 version = "1.4.0"
 
+[dependencies.paw_dep]
+version = "1"
+optional = true
+package = "paw"
+
 [dependencies.structopt-derive]
-version = "=0.4.7"
+version = "=0.4.11"
 [dev-dependencies.rustversion]
 version = "1"
 
@@ -45,7 +50,7 @@
 doc = ["clap/doc"]
 lints = ["clap/lints"]
 no_cargo = ["clap/no_cargo"]
-paw = ["structopt-derive/paw"]
+paw = ["structopt-derive/paw", "paw_dep"]
 suggestions = ["clap/suggestions"]
 wrap_help = ["clap/wrap_help"]
 yaml = ["clap/yaml"]
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 12b2dbe..9fc207a 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,6 +1,6 @@
 [package]
 name = "structopt"
-version = "0.3.14"
+version = "0.3.18"
 edition = "2018"
 authors = ["Guillaume Pinot <texitoi@texitoi.eu>", "others"]
 description = "Parse command line argument by defining a struct."
@@ -8,7 +8,7 @@
 repository = "https://github.com/TeXitoi/structopt"
 keywords = ["clap", "cli", "derive", "docopt"]
 categories = ["command-line-interface"]
-license = "Apache-2.0/MIT"
+license = "Apache-2.0 OR MIT"
 readme = "README.md"
 
 [features]
@@ -21,15 +21,16 @@
 debug = ["clap/debug"]
 no_cargo = ["clap/no_cargo"]
 doc = ["clap/doc"]
-paw = ["structopt-derive/paw"]
+paw = ["structopt-derive/paw", "paw_dep"]
 
 [badges]
 travis-ci = { repository = "TeXitoi/structopt" }
 
 [dependencies]
 clap = { version = "2.33", default-features = false }
-structopt-derive = { path = "structopt-derive", version = "=0.4.7" }
+structopt-derive = { path = "structopt-derive", version = "=0.4.11" }
 lazy_static = "1.4.0"
+paw_dep = { version = "1", optional = true, package = "paw" }
 
 [dev-dependencies]
 trybuild = { version = "1.0.5", features = ["diff"] }
diff --git a/METADATA b/METADATA
index e1deda2..b6bc6ff 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
   }
   url {
     type: ARCHIVE
-    value: "https://static.crates.io/crates/structopt/structopt-0.3.14.crate"
+    value: "https://static.crates.io/crates/structopt/structopt-0.3.18.crate"
   }
-  version: "0.3.14"
+  version: "0.3.18"
   license_type: NOTICE
   last_upgrade_date {
     year: 2020
-    month: 5
-    day: 6
+    month: 9
+    day: 23
   }
 }
diff --git a/README.md b/README.md
index 48ac3c3..6609488 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,7 @@
-# StructOpt [![Build status](https://travis-ci.org/TeXitoi/structopt.svg?branch=master)](https://travis-ci.org/TeXitoi/structopt) [![](https://img.shields.io/crates/v/structopt.svg)](https://crates.io/crates/structopt) [![](https://docs.rs/structopt/badge.svg)](https://docs.rs/structopt)
+# StructOpt
+
+[![Build status](https://travis-ci.org/TeXitoi/structopt.svg?branch=master)](https://travis-ci.org/TeXitoi/structopt) [![](https://img.shields.io/crates/v/structopt.svg)](https://crates.io/crates/structopt) [![](https://docs.rs/structopt/badge.svg)](https://docs.rs/structopt)
+[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)
 
 Parse command line arguments by defining a struct.  It combines [clap](https://crates.io/crates/clap) with custom derive.
 
diff --git a/examples/README.md b/examples/README.md
index f0db20b..b485393 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -69,6 +69,10 @@
 
 How `#[structopt(rename_all)]` works.
 
+### [Required If](required_if.rs)
+
+How to use `#[structopt(required_if)]`.
+
 ### [Skip](skip.rs)
 
 How to use `#[structopt(skip)]`.
diff --git a/examples/rename_all.rs b/examples/rename_all.rs
index 35f3c4f..c7c3538 100644
--- a/examples/rename_all.rs
+++ b/examples/rename_all.rs
@@ -17,6 +17,10 @@
 //! - **Snake Case**: Keep all letters lowercase and indicate word boundaries
 //!                   with underscores.
 //! - **Verbatim**: Use the original attribute name defined in the code.
+//!
+//! - **Lower Case**: Keep all letters lowercase and remove word boundaries.
+//!
+//! - **Upper Case**: Keep all letters upperrcase and remove word boundaries.
 
 use structopt::StructOpt;
 
diff --git a/examples/required_if.rs b/examples/required_if.rs
new file mode 100644
index 0000000..cb6b414
--- /dev/null
+++ b/examples/required_if.rs
@@ -0,0 +1,43 @@
+//! How to use `required_if` with structopt.
+use structopt::StructOpt;
+
+#[derive(Debug, StructOpt, PartialEq)]
+struct Opt {
+    /// Where to write the output: to `stdout` or `file`
+    #[structopt(short)]
+    out_type: String,
+
+    /// File name: only required when `out-type` is set to `file`
+    #[structopt(name = "FILE", required_if("out-type", "file"))]
+    file_name: Option<String>,
+}
+
+fn main() {
+    let opt = Opt::from_args();
+    println!("{:?}", opt);
+}
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn test_opt_out_type_file_without_file_name_returns_err() {
+        let opt = Opt::from_iter_safe(&["test", "-o", "file"]);
+        let err = opt.unwrap_err();
+        assert_eq!(err.kind, clap::ErrorKind::MissingRequiredArgument);
+    }
+
+    #[test]
+    fn test_opt_out_type_file_with_file_name_returns_ok() {
+        let opt = Opt::from_iter_safe(&["test", "-o", "file", "filename"]);
+        let opt = opt.unwrap();
+        assert_eq!(
+            opt,
+            Opt {
+                out_type: "file".into(),
+                file_name: Some("filename".into()),
+            }
+        );
+    }
+}
diff --git a/src/lib.rs b/src/lib.rs
index c42fe1f..c51277a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -7,6 +7,7 @@
 // except according to those terms.
 
 #![deny(missing_docs)]
+#![forbid(unsafe_code)]
 
 //! This crate defines the `StructOpt` trait and its custom derive.
 //!
@@ -87,9 +88,9 @@
 //!     #[structopt(short)]
 //!     out_type: String,
 //!
-//!     /// File name: only required when `out` is set to `file`
-//!     #[structopt(name = "FILE", required_if("out_type", "file"))]
-//!     file_name: String,
+//!     /// File name: only required when `out-type` is set to `file`
+//!     #[structopt(name = "FILE", required_if("out-type", "file"))]
+//!     file_name: Option<String>,
 //! }
 //!
 //! fn main() {
@@ -280,7 +281,7 @@
 //!     Usable only on field-level.
 //!
 //! - [`rename_all`](#specifying-argument-types):
-//!     [`rename_all = "kebab"/"snake"/"screaming-snake"/"camel"/"pascal"/"verbatim"]`
+//!     [`rename_all = "kebab"/"snake"/"screaming-snake"/"camel"/"pascal"/"verbatim"/"lower"/"upper"]`
 //!
 //!     Usable both on top level and field level.
 //!
@@ -309,7 +310,7 @@
 //!     Usable only on field-level.
 //!
 //! - [`rename_all_env`](##auto-deriving-environment-variables):
-//!     [`rename_all_env = "kebab"/"snake"/"screaming-snake"/"camel"/"pascal"/"verbatim"]`
+//!     [`rename_all_env = "kebab"/"snake"/"screaming-snake"/"camel"/"pascal"/"verbatim"/"lower"/"upper"]`
 //!
 //!     Usable both on top level and field level.
 //!
@@ -1063,6 +1064,8 @@
 
 /// Re-exports
 pub use clap;
+#[cfg(feature = "paw")]
+pub use paw_dep as paw;
 
 /// **This is NOT PUBLIC API**.
 #[doc(hidden)]
diff --git a/tests/argument_naming.rs b/tests/argument_naming.rs
index e7fe3d5..88b549d 100644
--- a/tests/argument_naming.rs
+++ b/tests/argument_naming.rs
@@ -309,3 +309,31 @@
         Opt::from_clap(&Opt::clap().get_matches_from(&["test", "SECOND_VARIANT", "--foo-option"]))
     );
 }
+
+#[test]
+fn test_lower_is_renamed() {
+    #[derive(StructOpt, Debug, PartialEq)]
+    struct Opt {
+        #[structopt(rename_all = "lower", long)]
+        foo_option: bool,
+    }
+
+    assert_eq!(
+        Opt { foo_option: true },
+        Opt::from_clap(&Opt::clap().get_matches_from(&["test", "--foooption"]))
+    );
+}
+
+#[test]
+fn test_upper_is_renamed() {
+    #[derive(StructOpt, Debug, PartialEq)]
+    struct Opt {
+        #[structopt(rename_all = "upper", long)]
+        foo_option: bool,
+    }
+
+    assert_eq!(
+        Opt { foo_option: true },
+        Opt::from_clap(&Opt::clap().get_matches_from(&["test", "--FOOOPTION"]))
+    );
+}
diff --git a/tests/flatten.rs b/tests/flatten.rs
index f01e44e..05de185 100644
--- a/tests/flatten.rs
+++ b/tests/flatten.rs
@@ -8,6 +8,8 @@
 
 use structopt::StructOpt;
 
+mod utils;
+
 #[test]
 fn flatten() {
     #[derive(StructOpt, PartialEq, Debug)]
@@ -127,3 +129,54 @@
         Opt::from_iter(&["test", "command2", "43"])
     );
 }
+
+#[test]
+#[should_panic = "structopt misuse: You likely tried to #[flatten] a struct \
+                  that contains #[subcommand]. This is forbidden."]
+fn subcommand_in_flatten() {
+    #[derive(Debug, StructOpt)]
+    pub enum Struct1 {
+        #[structopt(flatten)]
+        Struct1(Struct2),
+    }
+
+    #[derive(Debug, StructOpt)]
+    pub struct Struct2 {
+        #[structopt(subcommand)]
+        command_type: Enum3,
+    }
+
+    #[derive(Debug, StructOpt)]
+    pub enum Enum3 {
+        Command { args: Vec<String> },
+    }
+
+    Struct1::from_iter(&["test", "command", "foo"]);
+}
+
+#[test]
+fn flatten_doc_comment() {
+    #[derive(StructOpt, PartialEq, Debug)]
+    struct Common {
+        /// This is an arg. Arg means "argument". Command line argument.
+        arg: i32,
+    }
+
+    #[derive(StructOpt, PartialEq, Debug)]
+    struct Opt {
+        /// The very important comment that clippy had me put here.
+        /// It knows better.
+        #[structopt(flatten)]
+        common: Common,
+    }
+    assert_eq!(
+        Opt {
+            common: Common { arg: 42 }
+        },
+        Opt::from_iter(&["test", "42"])
+    );
+
+    let help = utils::get_help::<Opt>();
+    assert!(help.contains("This is an arg."));
+    assert!(!help.contains("The very important"));
+}
diff --git a/tests/macro-errors.rs b/tests/macro-errors.rs
index ae4f5a2..54b405a 100644
--- a/tests/macro-errors.rs
+++ b/tests/macro-errors.rs
@@ -5,7 +5,7 @@
 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
 // option. This file may not be copied, modified, or distributed
 
-#[rustversion::attr(any(not(stable), before(1.39)), ignore)]
+#[rustversion::attr(any(not(stable), before(1.43)), ignore)]
 #[test]
 fn ui() {
     let t = trybuild::TestCases::new();
diff --git a/tests/ui/flatten_and_doc.rs b/tests/ui/flatten_and_doc.rs
deleted file mode 100644
index 2dc154d..0000000
--- a/tests/ui/flatten_and_doc.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2018 Guillaume Pinot (@TeXitoi) <texitoi@texitoi.eu>
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use structopt::StructOpt;
-
-#[derive(StructOpt, Debug)]
-struct DaemonOpts {
-    #[structopt(short)]
-    user: String,
-    #[structopt(short)]
-    group: String,
-}
-
-#[derive(StructOpt, Debug)]
-#[structopt(name = "basic")]
-struct Opt {
-    /// Opts.
-    #[structopt(flatten)]
-    opts: DaemonOpts,
-}
-
-fn main() {
-    let opt = Opt::from_args();
-    println!("{:?}", opt);
-}
diff --git a/tests/ui/flatten_and_doc.stderr b/tests/ui/flatten_and_doc.stderr
deleted file mode 100644
index 2724dbb..0000000
--- a/tests/ui/flatten_and_doc.stderr
+++ /dev/null
@@ -1,5 +0,0 @@
-error: methods and doc comments are not allowed for flattened entry
-  --> $DIR/flatten_and_doc.rs:23:17
-   |
-23 |     #[structopt(flatten)]
-   |                 ^^^^^^^
diff --git a/tests/ui/flatten_and_methods.stderr b/tests/ui/flatten_and_methods.stderr
index f058eb3..77d97ae 100644
--- a/tests/ui/flatten_and_methods.stderr
+++ b/tests/ui/flatten_and_methods.stderr
@@ -1,4 +1,4 @@
-error: methods and doc comments are not allowed for flattened entry
+error: methods are not allowed for flattened entry
   --> $DIR/flatten_and_methods.rs:22:24
    |
 22 |     #[structopt(short, flatten)]
diff --git a/tests/ui/non_existent_attr.stderr b/tests/ui/non_existent_attr.stderr
index 99dc781..e5edb56 100644
--- a/tests/ui/non_existent_attr.stderr
+++ b/tests/ui/non_existent_attr.stderr
@@ -1,5 +1,5 @@
-error[E0599]: no method named `non_existing_attribute` found for struct `clap::args::arg::Arg<'_, '_>` in the current scope
+error[E0599]: no method named `non_existing_attribute` found for struct `structopt::clap::Arg<'_, '_>` in the current scope
   --> $DIR/non_existent_attr.rs:14:24
    |
 14 |     #[structopt(short, non_existing_attribute = 1)]
-   |                        ^^^^^^^^^^^^^^^^^^^^^^ method not found in `clap::args::arg::Arg<'_, '_>`
+   |                        ^^^^^^^^^^^^^^^^^^^^^^ method not found in `structopt::clap::Arg<'_, '_>`
diff --git a/tests/ui/tuple_struct.stderr b/tests/ui/tuple_struct.stderr
index 9f2876f..31705c9 100644
--- a/tests/ui/tuple_struct.stderr
+++ b/tests/ui/tuple_struct.stderr
@@ -3,3 +3,5 @@
    |
 11 | #[derive(StructOpt, Debug)]
    |          ^^^^^^^^^
+   |
+   = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info)
