diff --git a/keyboard/ergodox_ez/keymaps/dave/dave.hex b/keyboard/ergodox_ez/keymaps/dave/dave.hex
index 363e7234d8..a1ba8b901d 100644
Binary files a/keyboard/ergodox_ez/keymaps/dave/dave.hex and b/keyboard/ergodox_ez/keymaps/dave/dave.hex differ
diff --git a/keyboard/ergodox_ez/keymaps/dave/keymap.c b/keyboard/ergodox_ez/keymaps/dave/keymap.c
index 3ac2842fbf..e9480af3e9 100644
--- a/keyboard/ergodox_ez/keymaps/dave/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/dave/keymap.c
@@ -3,8 +3,8 @@
 #include "action_layer.h"
 
 #define BASE 0 // default layer
-#define PROG 1 // symbols
-#define NAVI 2 // navigation keys
+#define PROG 1 // programming
+#define NAVI 2 // navigation
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 /* Keymap 0: Basic layer
@@ -18,16 +18,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |--------+------+------+------+------+------|   H  |           |   B  |------+------+------+------+------+--------|
  * | LShift |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   /  | RShift |
  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |`/Ctrl|   \  |      |      | LAlt |                                       | RAlt |      |   [  |   ]  |'/Ctrl|
+ *   |`/Ctrl|   \  |      |      | LAlt |                                       | RAlt |   [  |   ]  |      |'/Ctrl|
  *   `----------------------------------'                                       `----------------------------------'
  *                                        ,-------------.       ,-------------.
- *                                        | PrtS | Apps |       | Paus | CtAl |
+ *                                        | PrtS | PrtS |       | CtAl | CtAl |
  *                                 ,------+------+------|       |------+------+------.
  *                                 |      |      |  L1  |       |  L1  |      |      |
  *                                 | Spce | ~L2  +------|       |------+  ~L1 | Spce |
  *                                 |      |      | LGui |       | RGui |      |      |
  *                                 `--------------------'       `--------------------'
  */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
 [BASE] = KEYMAP(  // layer 0 : default
         // left hand
         KC_ESC,   KC_1,     KC_2,    KC_3,    KC_4,    KC_5,   KC_6,
@@ -35,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_LCTRL, KC_A,     KC_S,    KC_D,    KC_F,    KC_G,
         KC_LSFT,  KC_Z,     KC_X,    KC_C,    KC_V,    KC_B,   KC_H,
         CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO,   KC_LALT,
-                                                   KC_PSCREEN,    KC_APP,
+                                                  KC_PSCREEN, KC_PSCREEN,
                                                       TO(PROG, ON_PRESS),
                                                KC_SPC, MO(NAVI), KC_LGUI,
         // right hand
@@ -43,8 +45,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
              KC_G,    KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,    KC_ENTER,
                       KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN, KC_ENTER,
              KC_B,    KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
-                              KC_RALT,KC_NO,  KC_LBRC,KC_RBRC, CTL_T(KC_QUOT),
-             KC_PAUS, MT(0x5, KC_NO),
+                              KC_RALT,KC_LBRC,KC_RBRC,KC_NO,   CTL_T(KC_QUOT),
+             MT(0x5, KC_NO), MT(0x5, KC_NO),
              TO(PROG, ON_PRESS),
              KC_RGUI, MO(PROG), KC_SPC
     ),
@@ -70,6 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                                 |      |      |      |       |      |      |      |
  *                                 `--------------------'       `--------------------'
  */
+// PROGRAMMING
 [PROG] = KEYMAP(
        // left hand
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -105,20 +108,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *   |      | MsLt | MsDn | MsRt |      |                                       |VolDn | Mute |VolUp |      |      |
  *   `----------------------------------'                                       `----------------------------------'
  *                                        ,-------------.       ,-------------.
- *                                        | Powr |  Log |       |      |      |
+ *                                        |      |      |       |      |      |
  *                                 ,------|------|------|       |------+------+------.
  *                                 |      |      |  L0  |       |  L0  |      |      |
  *                                 |      |      |------|       |------|      |      |
  *                                 |      |      |      |       |      |      |      |
  *                                 `--------------------'       `--------------------'
  */
+// NAVIGATION
 [NAVI] = KEYMAP(
        KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,
        KC_TRNS, KC_HOME, KC_UP,   KC_END,  KC_INS,  KC_PGUP, KC_TRNS,
        KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN,
        KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
-                                KC_PWR, LCTL(LALT(KC_DELT)),
+                                           KC_TRNS, KC_TRNS,
                                          TO(BASE, ON_PRESS),
                                   KC_TRNS, KC_TRNS, KC_TRNS,
     // right hand
diff --git a/keyboard/ergodox_ez/keymaps/dave/readme.md b/keyboard/ergodox_ez/keymaps/dave/readme.md
new file mode 100644
index 0000000000..aa0f9bd192
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/dave/readme.md
@@ -0,0 +1,38 @@
+This keymap is my preferred layout (after a certain amount of experimentation).
+The rationale behind the design is as follows:
+
+I grew up typing from a very early age and thus never learned the "correct" way
+to touch type (essentially, I'm self-taught). As a, result my fingers don't
+tend to stay on the "home keys" and occasionally my right hand wants to type
+keys that are on the left of the keyboard, and vice versa.
+
+Hence, despite liking the idea of split keyboards in principle, I've never been
+able to get on with them because the split simply doesn't work with my style of
+typing. The Ergodox solves this neatly by virtue of having a few extra keys in
+the "middle" of the keyboard which I can utilise for deliberate redundancy.
+Thus in this keymap there are two "6" keys (one on the left, one on the right)
+and likewise Y, H, G, and B are all duplicated to enable one-handed patterns
+that I use frequently (e.g. "byobu" with the right hand, "yes" with the left,
+etc.).
+
+I occasionally use the numeric pad for data entry, thus this is duplicated
+under the natural home position of the right hand in layer 1 (activated by
+holding one of the right thumb buttons), while the cursor keys are duplicated
+under the classic WASD gaming layout of the left hand in layer 2 (activated by
+holding one of the left thumb buttons). Various other useful keys also appear
+in these layers (brackets and symbols for coding in layer 1, navigation and
+F-keys in layer 2, etc.).
+
+Finally, modifier keys like Ctrl, Shift, and Alt, along with Backspace and
+Enter are all in traditional locations in an effort to reuse existing muscle
+memory as much as possible (keys like =, #, and ' are in layer 1). The layout
+maps are in the comments of keymap_dave.c so I won't bother duplicating them
+here.
+
+Oh, and the LEDs are rather pimped ... because I could!
+
+Anyway, although I'm sure this keymap won't be to many people's taste you might
+find some interesting ideas in here for your own layouts. Do tweet me
+(@waveform80) if you have any questions / suggestions / bugs.
+
+Dave.