diff --git a/developer/20.0/context/keyboard-editor.md b/developer/20.0/context/keyboard-editor.md
index 433cce5c4..033ec86c4 100644
--- a/developer/20.0/context/keyboard-editor.md
+++ b/developer/20.0/context/keyboard-editor.md
@@ -99,23 +99,25 @@ Features
## Layout tab
+### Design view
+
+> Path: KMN → Layout tab → Design view (default)
+
The Layout tab gives you a simple interface to quickly create a keyboard
-using a visual representation of a desktop/laptop computer keyboard. You
+using a visual representation of a **desktop/laptop keyboard**. You
can drag and drop characters from the character map to create keyboard
-layouts. You cannot access most of Keyman's more powerful features from
-the Layout Design view, but it will be useful to get you started on your
-design.
+layouts.
Each key can have zero or more characters assigned to it. Each key can
be assigned a different set of characters for each shift state. You can
-change the shift state by clicking on the Shift, Ctrl, and Alt keys.
+change the shift state by clicking on the Shift, Ctrl, and Alt keys.
There are two ways to assign characters to the keys:
- Click on a key, and then type the character's code into the Unicode
- Character Value(s) field, or the type/paste the character itself
+ Character Value(s) field, or type/paste the character itself
into the Output character(s) field.
- Select the character from the Character Map and drag and drop it
onto the appropriate key. This will set the key to output that
@@ -130,7 +132,7 @@ There are two ways to assign characters to the keys:
Distinguish between left and right Ctrl/Alt
: A Keyman keyboard can treat left and right Ctrl and Alt identically,
or it can distinguish between them. The Design view allows one or
- the other mode (in Code view, you can use both interchangeably).
+ the other mode (in [Code view](#toc-code-view), you can use both interchangeably).
Display 102nd Key (as on European keyboards)
: European keyboards have one extra key that is not on US keyboards.
@@ -143,8 +145,16 @@ Display 102nd Key (as on European keyboards)
the backslash key will move down one row, but not otherwise change
in behaviour.
-You can press and release Ctrl to select
-another key on the keyboard using your keyboard.
+> [!TIP]
+> You can press and release Ctrl to select another key on the keyboard using your keyboard.
+
+You cannot access most of Keyman's more powerful features from
+the Layout Design view, but it will be useful to get you started on your
+design.
+
+### Code view
+
+> Path: KMN → Layout tab → Code view
@@ -156,6 +166,9 @@ the Code view.
See the [Editor topic](editor) for more information on how to use the
editor shown within this view.
+> [!NOTE]
+> Remember that any newly assigned keys from the layout tab won't be automatically added to the On-Screen keyboard except when you press the 'Fill from layout' button (See [On-screen](#toc-on-screen-tab) below).
+
## On-Screen tab
@@ -183,6 +196,9 @@ Fill from layout
pre-populate the On-Screen Keyboard and reduces the complexity of
designing it from scratch.
+> [!CAUTION]
+> The changes from the [Layout tab](#toc-layout-tab) will only apply to the On-Screen Keyboard once you use the 'Fill from layout'.
+
Import
: Imports an On-Screen Keyboard from an XML file.
diff --git a/developer/20.0/images/ui/frmKeymanWizard_Layout_Code.png b/developer/20.0/images/ui/frmKeymanWizard_Layout_Code.png
index 2fbe3991e..6d9055239 100644
Binary files a/developer/20.0/images/ui/frmKeymanWizard_Layout_Code.png and b/developer/20.0/images/ui/frmKeymanWizard_Layout_Code.png differ
diff --git a/developer/20.0/images/ui/frmKeymanWizard_Layout_Design.png b/developer/20.0/images/ui/frmKeymanWizard_Layout_Design.png
index 5d3b57055..909a7d368 100644
Binary files a/developer/20.0/images/ui/frmKeymanWizard_Layout_Design.png and b/developer/20.0/images/ui/frmKeymanWizard_Layout_Design.png differ
diff --git a/developer/20.0/reference/messages/km020bf.md b/developer/20.0/reference/messages/km020bf.md
new file mode 100644
index 000000000..6e9023f93
--- /dev/null
+++ b/developer/20.0/reference/messages/km020bf.md
@@ -0,0 +1,19 @@
+---
+title: KM020BF: WARN_CallUsedOnUnsupportedPlatform
+---
+
+| | |
+|------------|---------- |
+| Message | The \`call\(\)\` statement is not supported on macOS or Linux platforms\. |
+| Module | [kmc-kmn.KmnCompilerMessages](kmc-kmn.kmncompilermessages) |
+| Identifier | `WARN_CallUsedOnUnsupportedPlatform` |
+
+
+The `call()` statement is supported on Windows and web-based platforms,
+including mobile and tablet. The target platforms can be specified in
+the `&targets` system store; avoid the use of generic platforms such as
+`'any'` or `'desktop'`. Note that the implementation of your call
+target will differ across platforms; see
+[`call()` statement](https://help.keyman.com/developer/language/reference/call)
+in the documentation for more details.
+
diff --git a/developer/20.0/reference/messages/km05009.md b/developer/20.0/reference/messages/km05009.md
index 1874676a9..0d0736b98 100644
--- a/developer/20.0/reference/messages/km05009.md
+++ b/developer/20.0/reference/messages/km05009.md
@@ -1,11 +1,11 @@
---
-title: KM05009: HINT_FilenameHasDifferingCase
+title: KM05009: WARN_FilenameHasDifferingCase
---
| | |
|------------|---------- |
| Message | File on disk '<param>' does not match case of '<param>' in source file; this is an error on platforms with case\-sensitive filesystems\. |
| Module | [kmc.InfrastructureMessages](kmc.infrastructuremessages) |
-| Identifier | `HINT_FilenameHasDifferingCase` |
+| Identifier | `WARN_FilenameHasDifferingCase` |
diff --git a/developer/20.0/reference/messages/kmc-kmn.kmncompilermessages.md b/developer/20.0/reference/messages/kmc-kmn.kmncompilermessages.md
index 125071688..55d552e21 100644
--- a/developer/20.0/reference/messages/kmc-kmn.kmncompilermessages.md
+++ b/developer/20.0/reference/messages/kmc-kmn.kmncompilermessages.md
@@ -166,6 +166,7 @@ title: Compiler Messages Reference for @keymanapp/kmc-kmn
[KM020BC](km020bc) | `WARN_DeprecatedValueFormat` | The decimal \(d\#\#\#\), octal \(\#\#\#\), and hexadecimal \(x\#\#\#\) value formats were deprecated in Keyman 19 and are scheduled to be removed in Keyman 20\.
[KM020BD](km020bd) | `WARN_DeprecatedCompileTarget` | Compile target '<param>' was deprecated in Keyman 19 and will cause the line to always be ignored by kmc in Keyman 20\.
[KM020BE](km020be) | `ERROR_StoreContainsUnsupportedStatement` | A store can contain only characters, deadkeys, virtual keys, and 'outs\(\)' statements\.
+[KM020BF](km020bf) | `WARN_CallUsedOnUnsupportedPlatform` | The \`call\(\)\` statement is not supported on macOS or Linux platforms\.
[KM020C0](km020c0) | `FATAL_BufferOverflow` | The compiler memory buffer overflowed
[KM02900](km02900) | `FATAL_UnexpectedException` | This is an internal error; the message will vary
[KM02901](km02901) | `FATAL_MissingWasmModule` | This is an internal error; the message will vary
diff --git a/developer/20.0/reference/messages/kmc.infrastructuremessages.md b/developer/20.0/reference/messages/kmc.infrastructuremessages.md
index f2afc1268..d4122177a 100644
--- a/developer/20.0/reference/messages/kmc.infrastructuremessages.md
+++ b/developer/20.0/reference/messages/kmc.infrastructuremessages.md
@@ -11,7 +11,7 @@ title: Compiler Messages Reference for @keymanapp/kmc
[KM05005](km05005) | `ERROR_OutFileNotValidForProjects` | \-\-out\-file should not be specified for project builds
[KM05006](km05006) | `INFO_FileBuiltSuccessfully` | <param> built successfully\.
[KM05007](km05007) | `INFO_FileNotBuiltSuccessfully` | <param> failed to build\.
-[KM05009](km05009) | `HINT_FilenameHasDifferingCase` | File on disk '<param>' does not match case of '<param>' in source file; this is an error on platforms with case\-sensitive filesystems\.
+[KM05009](km05009) | `WARN_FilenameHasDifferingCase` | File on disk '<param>' does not match case of '<param>' in source file; this is an error on platforms with case\-sensitive filesystems\.
[KM0500A](km0500a) | `ERROR_UnknownFileFormat` | Unknown file format <param>; only Markdown \(\.md\), JSON \(\.json\), and Text \(\.txt\) are supported\.
[KM0500B](km0500b) | `INFO_ProjectBuiltSuccessfully` | Project <param> built successfully\.
[KM0500C](km0500c) | `INFO_ProjectNotBuiltSuccessfully` | Project <param> failed to build\.