diff --git a/unravel-emacs.org b/unravel-emacs.org
index 8155f31..ff5c1b3 100644
--- a/unravel-emacs.org
+++ b/unravel-emacs.org
@@ -1185,6 +1185,34 @@ These are modifications to basic configuration I use on my Mac OSX machine.
       (setq find-function-C-source-directory (expand-file-name "~/src/emacs/src/"))))
 #+end_src
 
+** The =unravel-essentials.el= section for ~simple.el~ changes
+:PROPERTIES:
+:CUSTOM_ID: h:6B18F988-DBAD-458C-97BE-129D1FF988F4
+:END:
+
+#+begin_src emacs-lisp :tangle "unravel-modules/unravel-essentials.el"
+  (defun vedang/backward-kill-word-or-kill-region (&optional arg)
+    "Rebind `C-w' to work differently based on whether a region is active.
+
+  If the region is selected, retain the original behaviour, otherwise call
+  `backward-kill-word' instead.  ARG is passed to `backward-kill-word'."
+    (interactive "p")
+    (if (region-active-p)
+        (kill-region (region-beginning) (region-end))
+      (backward-kill-word arg)))
+
+  (use-package simple
+    :ensure nil
+    :after vertico ; so that we can bind to vertico-map
+    :bind
+    ;; Rebind `C-w' to work differently based on whether a region is
+    ;; active.
+    ( :map global-map
+      ("C-w" . vedang/backward-kill-word-or-kill-region)
+      :map vertico-map
+      ("C-l" . vedang/backward-kill-word-or-kill-region)))
+#+end_src
+
 ** Finally, we provide the =unravel-essentials.el= module
 :PROPERTIES:
 :CUSTOM_ID: h:c8b2f021-fe5a-4f6b-944c-20340f764fb2
diff --git a/unravel-modules/unravel-essentials.el b/unravel-modules/unravel-essentials.el
index 27a988f..20bedbc 100644
--- a/unravel-modules/unravel-essentials.el
+++ b/unravel-modules/unravel-essentials.el
@@ -152,4 +152,25 @@ word.  Fall back to regular `expreg-expand'."
     (setq source-directory (expand-file-name "~/src/emacs/src/"))
     (setq find-function-C-source-directory (expand-file-name "~/src/emacs/src/"))))
 
+(defun vedang/backward-kill-word-or-kill-region (&optional arg)
+  "Rebind `C-w' to work differently based on whether a region is active.
+
+If the region is selected, retain the original behaviour, otherwise call
+`backward-kill-word' instead.  ARG is passed to `backward-kill-word'."
+  (interactive "p")
+  (if (region-active-p)
+      (kill-region (region-beginning) (region-end))
+    (backward-kill-word arg)))
+
+(use-package simple
+  :ensure nil
+  :after vertico ; so that we can bind to vertico-map
+  :bind
+  ;; Rebind `C-w' to work differently based on whether a region is
+  ;; active.
+  ( :map global-map
+    ("C-w" . vedang/backward-kill-word-or-kill-region)
+    :map vertico-map
+    ("C-l" . vedang/backward-kill-word-or-kill-region)))
+
 (provide 'unravel-essentials)