diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index a8966a8..2835fd0 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,37 +1,31 @@
-# RemSound v5.4
+# RemSound v5.5
-Service polish and an important install fix. If you use the lock-screen service, this is a worthwhile update; if you don't, the "Use Windows default output" option and its tidier behaviour still apply to the main app.
+A close-hang fix and a keyboard-accessibility sweep.
-## Use the Windows default output
+## Fixed: a hang on close when UPnP is on
-Both the service and the main app can now send **"Use Windows default audio device"** — pick it and RemSound sends whatever this machine is currently playing, and **follows the Windows default** if you change it later (handy for the service: tell a machine "send whatever it plays" without pinning a named card).
+With the "open my router's port automatically" (UPnP) option turned on, closing RemSound could **hang instead of shutting**. On the way out RemSound asks the router to close the port again, and that request waits for the router to answer — a slow or fussy router (or a double-NAT setup) left the window stuck.
-Ticking it is now **exclusive**: it unticks the specific cards in that list and locks them out until you turn the default entry back off. In each list you're clearly either following the default or picking devices — never a confusing mix. (This replaces the old optional "shall I untick the others?" prompt.)
+Closing now **never waits on the router**: the tidy-up runs in the background with a short time limit, so RemSound shuts straight away and lets the router expire the port on its own if it's being slow. (Under the hood the app also logs each router step now, so if anything ever does stall we can see exactly which call was slow.)
-## Fixed: a service-install freeze
+## Keyboard shortcuts on every dialog
-Installing or reinstalling the service could **hang and lock RemSound up** — the window froze and its audio stopped, though the connection stayed alive. That's fixed at the root (a pipe deadlock in the elevated installer), and the install now runs so that a slow or stuck step **can never freeze the app again**.
-
-Straight after installing, RemSound now also asks whether you'd like to **start the service right away** (it otherwise waits until the next reboot).
-
-## Service tidy-up
-
-The service now sends this machine's **output audio, or specific applications** only — the microphone-inputs list has been removed, since capturing a mic from a logged-out machine isn't what the service is for. (The main app still has its full inputs list.)
+Every button in every pop-up dialog now has an **Alt-key shortcut** — including the "RemSound is already running" dialog, which previously had none at all. So you can always pick an option straight from the keyboard rather than tabbing to it. (Where a dialog's Cancel would clash with another shortcut, Cancel stays on Escape, as before.)
## Compatibility
-Nothing about the over-the-network format changed, so **v5.4 talks to v3.3 through v5.3** with no trouble — you don't have to update both ends at once. (Everyone still needs **v3.3 or newer**, where end-to-end encryption came in.)
+Nothing about the over-the-network format changed, so **v5.5 talks to v3.3 through v5.4** with no trouble — you don't have to update both ends at once. (Everyone still needs **v3.3 or newer**, where end-to-end encryption came in.)
## Install
-1. Download `RemSound-v5.4.zip` from this release.
+1. Download `RemSound-v5.5.zip` from this release.
2. Close RemSound.
3. Extract the zip **over your existing RemSound folder**, overwriting program files when prompted. The zip is program files only — it won't touch your settings, profiles, logs or recordings.
4. Run `RemSound.exe`.
## Upgrading
-**From v3.6 or newer:** Help → Check for updates installs v5.4 with the in-app updater — and if it can't finish, it puts your old version back exactly as it was.
+**From v3.6 or newer:** Help → Check for updates installs v5.5 with the in-app updater — and if it can't finish, it puts your old version back exactly as it was.
**From v1.9–v3.5:** Check for updates works, but uses your current version's older updater for this one hop. If auto-update has been failing on your machine, install by hand using the steps above.
diff --git a/src/RemSound.App/AboutDialog.cs b/src/RemSound.App/AboutDialog.cs
index fd8b1c4..26f4c6d 100644
--- a/src/RemSound.App/AboutDialog.cs
+++ b/src/RemSound.App/AboutDialog.cs
@@ -20,6 +20,14 @@ internal sealed class AboutDialog : Form
/// updates" path.
private const string ReleaseNotes =
"""
+ RemSound v5.5
+
+ A close-hang fix, and keyboard shortcuts everywhere.
+
+ Fixed a hang when UPnP is on. With the "open my router's port automatically" option turned on, closing RemSound could hang — on the way out it asks the router to close the port again, and a slow or fussy router left the window stuck waiting. Closing now never waits on the router: it tidies up in the background and shuts straight away.
+
+ Keyboard shortcuts on every dialog. Every button in every pop-up now has an Alt-key shortcut — including the "RemSound is already running" dialog, which previously had none. So you can always choose an option from the keyboard instead of tabbing to it.
+
RemSound v5.4
Service polish, and an important fix.
diff --git a/src/RemSound.App/RemSound.App.csproj b/src/RemSound.App/RemSound.App.csproj
index 5eb0755..0c92e0e 100644
--- a/src/RemSound.App/RemSound.App.csproj
+++ b/src/RemSound.App/RemSound.App.csproj
@@ -18,7 +18,7 @@
tag_name on the latest GitHub release; bump it on every public release. The
AssemblyVersion / FileVersion default to this value, and Assembly.GetName().Version
is what the About dialog and the updater both read. -->
- 5.4
+ 5.5