diff --git a/docs/Readme.md b/docs/Readme.md
index b203845e..721880ab 100644
--- a/docs/Readme.md
+++ b/docs/Readme.md
@@ -36,4 +36,4 @@ Other:
* [Open Source Projects using Catch](opensource-users.md#top)
* [Contributing](contributing.md#top)
* [Release Notes](release-notes.md#top)
-* [Deprecations](deprecations.md#top)
\ No newline at end of file
+* [Deprecations and incoming changes](deprecations.md#top)
diff --git a/docs/deprecations.md b/docs/deprecations.md
index 3a4144de..b8047684 100644
--- a/docs/deprecations.md
+++ b/docs/deprecations.md
@@ -1,63 +1,86 @@
# Deprecations and incoming changes
-**Contents**
-[Verbosities](#verbosities)
-[`--list-*` command line parameters](#--list--command-line-parameters)
-[Types passed to the reporter interface](#types-passed-to-the-reporter-interface)
-[Generators](#generators)
-[`ANON_TEST_CASE`](#anon_test_case)
-[Secondary description amongst tags](#secondary-description-amongst-tags)
-
-This page documents current deprecations and upcoming changes inside
-Catch2. You can expect deprecated functionality to stick around until
-the next major release, but not for longer.
+This page documents current deprecations and upcoming planned changes
+inside Catch2. The difference between these is that a deprecated feature
+will be removed, while a planned change to a feature means that the
+feature will behave differently, but will still be present. Obviously,
+either of these is a breaking change, and thus will not happen until
+at least the next major release.
-## Verbosities
+## Deprecations
-The current implementation of verbosities has been misguided and will
-be removed. Note that this does not mean verbosities will be gone, just
-that they will no longer be checked up-front, and a reporter can handle
-verbosity however it sees fit (including ignoring it).
+### `--list-*` return values
+
+The return codes of the `--list-*` family of command line arguments
+will no longer be equal to the number of tests/tags/etc found, instead
+it will be 0 for success and non-zero for failure.
-## `--list-*` command line parameters
+### `--list-test-names-only`
-There will be 3 large changes to the `--list-*` family of command line
-parameters.
-
-* Their return codes will no longer reflect the number of tests/tags/etc
-that were found, instead it will be 0 for success and non-zero for failure.
-* Their output will be piped through reporters, so that e.g. XML reporter
-will write the output as a machine-readable XML, while the console
-reporter will keep the current output.
-* `--list-test-names-only` will be completely removed.
+`--list-test-names-only` command line argument will be removed.
-## Types passed to the reporter interface
-
-To allow changes in internal representation, we are planning to change
-the arguments provided to functions in the reporter interface.
-
-
-## Generators
-
-The current generator interface is not intended to be stable and will be
-changed.
-
-
-## `ANON_TEST_CASE`
+### `ANON_TEST_CASE`
`ANON_TEST_CASE` is scheduled for removal, as it can be fully replaced
by a `TEST_CASE` with no arguments.
-## Secondary description amongst tags
+### Secondary description amongst tags
Currently, the tags part of `TEST_CASE` (and others) macro can also
-contain text that is not part of tags. As it is not actually documented,
-or used, it will be removed.
+contain text that is not part of tags. This text is then separated into
+a "description" of the test case, but the description is then never used
+apart from writing it out for `--list-tests -v high`.
+
+Because it isn't actually used nor documented, and brings complications
+to Catch2's internals, description support will be removed.
+
+
+## Planned changes
+
+
+### Reporter verbosities
+
+The current implementation of verbosities, where the reporter is checked
+up-front whether it supports the requested verbosity, is fundamentally
+misguided and will be changed. The new implementation will no longer check
+whether the specified reporter supports the requested verbosity, instead
+it will be up to the reporters to deal with verbosities as they see fit
+(with an expectation that unsupported verbosities will be, at most,
+warnings, but not errors).
+
+
+### Output format of `--list-*` command line parameters
+
+The various list operations will be piped through reporters. This means
+that e.g. XML reporter will write the output as machine-parseable XML,
+while the Console reporter will keep the current, human-oriented output.
+
+
+### `CHECKED_IF` and `CHECKED_ELSE`
+
+To make the `CHECKED_IF` and `CHECKED_ELSE` macros more useful, they will
+be marked as "OK to fail" (`Catch::ResultDisposition::SuppressFail` flag
+will be added), which means that their failure will not fail the test,
+making the `else` actually useful.
+
+
+### Change semantics of `[.]` and tag exclusion
+
+Currently, given these 2 tests
+```cpp
+TEST_CASE("A", "[.][foo]") {}
+TEST_CASE("B", "[.][bar]") {}
+```
+specifying `[foo]` as the testspec will run test "A" and specifying
+`~[foo]` will run test "B", even though it is hidden. Also, specifying
+`~[baz]` will run both tests. This behaviour is often surprising and will
+be changed so that hidden tests are included in a run only if they
+positively match a testspec.
---