Index: themekey_base.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/themekey/themekey_base.inc,v
retrieving revision 1.15.2.9
diff -u -r1.15.2.9 themekey_base.inc
--- themekey_base.inc	17 Dec 2009 18:54:06 -0000	1.15.2.9
+++ themekey_base.inc	22 Dec 2009 11:40:04 -0000
@@ -185,23 +185,23 @@
         if (!is_null($single_value)) {
           // Supported operators for condition check:
           // smaller ('<'), greater ('>'), equal ('='), not equal ('!'), regex match ('~')
-          if ($condition['operator'] == '<' && $single_value < $condition['value']) {
-            return TRUE;
+          if ($condition['operator'] == '<' && $single_value >= $condition['value']) {
+            return FALSE;
           }
-          else if ($condition['operator'] == '>' && $single_value > $condition['value']) {
-            return TRUE;
+          else if ($condition['operator'] == '>' && $single_value <= $condition['value']) {
+            return FALSE;
           }
-          else if ($condition['operator'] == '<=' && $single_value <= $condition['value']) {
-            return TRUE;
+          else if ($condition['operator'] == '<=' && $single_value > $condition['value']) {
+            return FALSE;
           }
-          else if ($condition['operator'] == '>=' && $single_value >= $condition['value']) {
-            return TRUE;
+          else if ($condition['operator'] == '>=' && $single_value < $condition['value']) {
+            return FALSE;
           }
           else if ($condition['operator'] == '=' && $single_value == $condition['value']) {
             return TRUE;
           }
-          else if ($condition['operator'] == '!' && $single_value != $condition['value']) {
-            return TRUE;
+          else if ($condition['operator'] == '!' && $single_value == $condition['value']) {
+            return FALSE;
           }
           else if ($condition['operator'] == '~' && preg_match($condition['value'], $single_value)) {
             return TRUE;
@@ -234,14 +234,17 @@
       else if ($condition['operator'] == '~' && !preg_match($condition['value'], $value)) {
         return FALSE;
       }
+
+      return TRUE;
     }
     else {
       // value is NULL
       return FALSE;
     }
   }
-
-  return TRUE;
+  else {
+    trigger_error(t('Function _themekey_match_condition() called with illegal parameters'), E_USER_ERROR);
+  }
 }
 
 /**
