Index: apps/gui/skin_engine/skin_parser.c
===================================================================
--- apps/gui/skin_engine/skin_parser.c	(revision 30568)
+++ apps/gui/skin_engine/skin_parser.c	(working copy)
@@ -704,6 +704,8 @@
         lif->op = IF_GREATERTHAN;
     else if (!strncmp(op, "<", 1))
         lif->op = IF_LESSTHAN;
+    else if (!strncmp(op, "/?", 2))
+        lif->op = IF_DIVISIBLE;
     
     memcpy(&lif->operand, &element->params[2], sizeof(lif->operand));
     if (element->params_count > 3)
Index: apps/gui/skin_engine/skin_tokens.c
===================================================================
--- apps/gui/skin_engine/skin_tokens.c	(revision 30568)
+++ apps/gui/skin_engine/skin_tokens.c	(working copy)
@@ -788,6 +788,8 @@
             return a > b ? "gt" : NULL;
         case IF_GREATERTHAN_EQ:
             return a >= b ? "gte" : NULL;
+        case IF_DIVISIBLE:
+            return (a % b) == 0 ? "div" : NULL;
     }
     return NULL;
 }
Index: apps/gui/skin_engine/wps_internals.h
===================================================================
--- apps/gui/skin_engine/wps_internals.h	(revision 30568)
+++ apps/gui/skin_engine/wps_internals.h	(working copy)
@@ -282,7 +282,8 @@
         IF_LESSTHAN, /* < */
         IF_LESSTHAN_EQ, /* <= */
         IF_GREATERTHAN, /* > */
-        IF_GREATERTHAN_EQ /* >= */
+        IF_GREATERTHAN_EQ, /* >= */
+        IF_DIVISIBLE /* /? */
     } op;
     struct skin_tag_parameter operand;
     int num_options;
