diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index c3f803e..ef66eef 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -630,43 +630,38 @@ const char *get_token_value(struct gui_wps *gwps,
             out_text = get_token_value(gwps, lif->token, offset, buf, buf_size, &a);            
             if (a == -1 && lif->token->type != SKIN_TOKEN_VOLUME)
                 a = (out_text && *out_text) ? 1 : 0;
-            switch (lif->operand.type)
+            if (lif->operand.type == STRING)
             {
-                case STRING:
+                if (lif->op == IF_EQUALS)
+                    return strcmp(out_text, lif->operand.data.text) == 0 ?
+                                                                "eq" : NULL;
+                else
+                    return NULL;
+            }
+            else if (lif->operand.type == INTEGER || lif->operand.type == DECIMAL)
+            {
+                b = lif->operand.data.number;
+            }
+            else if (lif->operand.type == CODE)
+            {
+                char temp_buf[MAX_PATH];
+                const char *outb;
+                struct wps_token *token = lif->operand.data.code->data;
+                b = lif->num_options;
+                outb = get_token_value(gwps, token, offset, temp_buf,
+                                       sizeof(temp_buf), &b);            
+                if (b == -1 && lif->token->type != SKIN_TOKEN_VOLUME)
+                {
+                    if (!out_text || !outb)
+                        return (lif->op == IF_EQUALS) ? NULL : "neq";
+                    bool equal = strcmp(out_text, outb) == 0;
                     if (lif->op == IF_EQUALS)
-                        return strcmp(out_text, lif->operand.data.text) == 0 ?
-                                                                    "eq" : NULL;
+                        return equal ? "eq" : NULL;
+                    else if (lif->op == IF_NOTEQUALS)
+                        return !equal ? "neq" : NULL;
                     else
-                        return NULL;
-                    break;
-                case INTEGER:
-                case DECIMAL:
-                    b = lif->operand.data.number;
-                    break;
-                case CODE:
-                {
-                    char temp_buf[MAX_PATH];
-                    const char *outb;
-                    struct wps_token *token = lif->operand.data.code->data;
-                    b = lif->num_options;
-                    outb = get_token_value(gwps, token, offset, temp_buf,
-                                           sizeof(temp_buf), &b);            
-                    if (b == -1 && lif->token->type != SKIN_TOKEN_VOLUME)
-                    {
-                        if (!out_text || !outb)
-                            return (lif->op == IF_EQUALS) ? NULL : "neq";
-                        bool equal = strcmp(out_text, outb) == 0;
-                        if (lif->op == IF_EQUALS)
-                            return equal ? "eq" : NULL;
-                        else if (lif->op == IF_NOTEQUALS)
-                            return !equal ? "neq" : NULL;
-                        else
-                            b = (outb && *outb) ? 1 : 0;
-                    }
+                        b = (outb && *outb) ? 1 : 0;
                 }
-                break;
-                case DEFAULT:
-                    break;
             }
                     
             switch (lif->op)
