diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c
index d4f098c..d462d4c 100644
--- a/apps/keymaps/keymap-h1x0_h3x0.c
+++ b/apps/keymaps/keymap-h1x0_h3x0.c
@@ -315,10 +315,27 @@ static const struct button_mapping button_context_standard_h300lcdremote[]  = {
     { ACTION_STD_OK,            BUTTON_RC_FF,                       BUTTON_NONE },
     
     LAST_ITEM_IN_LIST
+}; /* button_context_standard_h300lcdremote */
 
-};
+static const struct button_mapping button_context_wps_h300nonlcdremote[]  = {
+    { ACTION_WPS_PLAY,              BUTTON_RC_ON|BUTTON_REL,            BUTTON_RC_ON },
+    { ACTION_WPS_SKIPNEXT,          BUTTON_RC_FF|BUTTON_REL,            BUTTON_RC_FF },
+    { ACTION_WPS_SKIPPREV,          BUTTON_RC_REW|BUTTON_REL,           BUTTON_RC_REW },
+    { ACTION_WPS_SEEKBACK,          BUTTON_RC_REW|BUTTON_REPEAT,        BUTTON_NONE },
+    { ACTION_WPS_SEEKFWD,           BUTTON_RC_FF|BUTTON_REPEAT,         BUTTON_NONE },
+    { ACTION_WPS_STOPSEEK,          BUTTON_RC_REW|BUTTON_REL,           BUTTON_RC_REW|BUTTON_REPEAT },
+    { ACTION_WPS_STOPSEEK,          BUTTON_RC_FF|BUTTON_REL,            BUTTON_RC_FF|BUTTON_REPEAT },
+    { ACTION_WPS_STOP,              BUTTON_RC_STOP|BUTTON_REL,          BUTTON_RC_STOP },
+    { ACTION_WPS_VOLDOWN,           BUTTON_RC_VOL_DOWN,                 BUTTON_NONE },
+    { ACTION_WPS_VOLDOWN,           BUTTON_RC_VOL_DOWN|BUTTON_REPEAT,   BUTTON_NONE },
+    { ACTION_WPS_VOLUP,             BUTTON_RC_VOL_UP,                   BUTTON_NONE },
+    { ACTION_WPS_VOLUP,             BUTTON_RC_VOL_UP|BUTTON_REPEAT,     BUTTON_NONE },
+    { ACTION_WPS_BROWSE,            BUTTON_RC_ON|BUTTON_REPEAT,         BUTTON_NONE },
 
-static const struct button_mapping button_context_wps_remotescommon[]  = {
+    LAST_ITEM_IN_LIST
+}; /* button_context_wps_h300nonlcdremote */
+
+static const struct button_mapping button_context_wps_h100remote[] = {
     { ACTION_WPS_PLAY,              BUTTON_RC_ON|BUTTON_REL,            BUTTON_RC_ON },
     { ACTION_WPS_SKIPNEXT,          BUTTON_RC_FF|BUTTON_REL,            BUTTON_RC_FF },
     { ACTION_WPS_SKIPPREV,          BUTTON_RC_REW|BUTTON_REL,           BUTTON_RC_REW },
@@ -338,31 +355,41 @@ static const struct button_mapping button_context_wps_remotescommon[]  = {
     { ACTION_WPS_MENU,              BUTTON_RC_MODE|BUTTON_REL,          BUTTON_RC_MODE },
     { ACTION_WPS_CONTEXT,           BUTTON_RC_MENU|BUTTON_REPEAT,       BUTTON_NONE },
     { ACTION_WPS_BROWSE,            BUTTON_RC_MENU|BUTTON_REL,          BUTTON_RC_MENU },
-/* Now the specific combos, because H100 & H300 LCD remotes have different 
- * keys, capable of acting as "modifier" - H100 : RC_ON; H300: RC_MENU 
- */    
-    LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_REMOTE|CONTEXT_WPS)
-}; 
-
-
-static const struct button_mapping button_context_wps_h100remote[] = {
     { ACTION_WPS_ABRESET,           BUTTON_RC_ON|BUTTON_RC_MENU,        BUTTON_RC_ON },
     { ACTION_WPS_ID3SCREEN,         BUTTON_RC_ON|BUTTON_RC_MODE,        BUTTON_NONE },
+
     LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
-};
+}; /* button_context_wps_h100remote */
+
 static const struct button_mapping button_context_wps_h300lcdremote[] = {
+    { ACTION_WPS_PLAY,              BUTTON_RC_ON|BUTTON_REL,            BUTTON_RC_ON },
+    { ACTION_WPS_SKIPNEXT,          BUTTON_RC_FF|BUTTON_REL,            BUTTON_RC_FF },
+    { ACTION_WPS_SKIPPREV,          BUTTON_RC_REW|BUTTON_REL,           BUTTON_RC_REW },
+    { ACTION_WPS_SEEKBACK,          BUTTON_RC_REW|BUTTON_REPEAT,        BUTTON_NONE },
+    { ACTION_WPS_SEEKFWD,           BUTTON_RC_FF|BUTTON_REPEAT,         BUTTON_NONE },
+    { ACTION_WPS_STOPSEEK,          BUTTON_RC_REW|BUTTON_REL,           BUTTON_RC_REW|BUTTON_REPEAT },
+    { ACTION_WPS_STOPSEEK,          BUTTON_RC_FF|BUTTON_REL,            BUTTON_RC_FF|BUTTON_REPEAT },
+    { ACTION_WPS_ABSETB_NEXTDIR,    BUTTON_RC_BITRATE,                  BUTTON_NONE },
+    { ACTION_WPS_ABSETA_PREVDIR,    BUTTON_RC_SOURCE,                   BUTTON_NONE },
+    { ACTION_WPS_STOP,              BUTTON_RC_STOP|BUTTON_REL,          BUTTON_RC_STOP },
+    { ACTION_WPS_VOLDOWN,           BUTTON_RC_VOL_DOWN,                 BUTTON_NONE },
+    { ACTION_WPS_VOLDOWN,           BUTTON_RC_VOL_DOWN|BUTTON_REPEAT,   BUTTON_NONE },
+    { ACTION_WPS_VOLUP,             BUTTON_RC_VOL_UP,                   BUTTON_NONE },
+    { ACTION_WPS_VOLUP,             BUTTON_RC_VOL_UP|BUTTON_REPEAT,     BUTTON_NONE },
+    { ACTION_WPS_BROWSE,            BUTTON_RC_ON|BUTTON_REPEAT,         BUTTON_NONE },
     { ACTION_WPS_ABRESET,           BUTTON_RC_MENU|BUTTON_RC_ON,        BUTTON_RC_MENU },
     { ACTION_WPS_ID3SCREEN,         BUTTON_RC_MENU|BUTTON_RC_MODE,      BUTTON_NONE },
+
     LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
-};
+}; /* button_context_wps_h300lcdremote */
 
 static const struct button_mapping button_context_list_h100remote[]  = {
-    { ACTION_LISTTREE_PGUP,         BUTTON_RC_SOURCE,                       BUTTON_NONE },
-    { ACTION_LISTTREE_PGUP,         BUTTON_RC_SOURCE|BUTTON_REPEAT,         BUTTON_NONE },
-    { ACTION_LISTTREE_PGDOWN,       BUTTON_RC_BITRATE,                      BUTTON_NONE },
-    { ACTION_LISTTREE_PGDOWN,       BUTTON_RC_BITRATE|BUTTON_REPEAT,        BUTTON_NONE },
+    { ACTION_LISTTREE_PGUP,         BUTTON_RC_SOURCE,                   BUTTON_NONE },
+    { ACTION_LISTTREE_PGUP,         BUTTON_RC_SOURCE|BUTTON_REPEAT,     BUTTON_NONE },
+    { ACTION_LISTTREE_PGDOWN,       BUTTON_RC_BITRATE,                  BUTTON_NONE },
+    { ACTION_LISTTREE_PGDOWN,       BUTTON_RC_BITRATE|BUTTON_REPEAT,    BUTTON_NONE },
     LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
-};
+}; /* button_context_list_h100remote */
 
 static const struct button_mapping *button_context_list_h300lcdremote =
                 button_context_list_h100remote;
@@ -809,9 +836,9 @@ static void remap_remote(void)
                 = button_context_radio_h300lcdremote;
             break;
 
-        case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */        
+        case REMOTETYPE_H300_NONLCD: /* FIXME: separate all tables */        
             remote_btn_ctxt_std = button_context_standard_h300lcdremote, 
-            remote_btn_ctxt_wps = button_context_wps_h300lcdremote,
+            remote_btn_ctxt_wps = button_context_wps_h300nonlcdremote,
             remote_btn_ctxt_list = button_context_list_h300lcdremote,
             remote_btn_ctxt_tree = button_context_tree_h300lcdremote,
             remote_btn_ctxt_listtree_scroll_w_cmb 
@@ -867,11 +894,7 @@ static const struct button_mapping* get_context_mapping_remote(int context)
         case CONTEXT_STD:
             return remote_btn_ctxt_std;
         case CONTEXT_WPS: /* common for all remotes */
-            return button_context_wps_remotescommon;
-
-        case CONTEXT_CUSTOM|CONTEXT_WPS:
-            return remote_btn_ctxt_wps; 
-
+            return remote_btn_ctxt_wps;
         case CONTEXT_LIST:
             return remote_btn_ctxt_list;
         case CONTEXT_TREE:
