Index: /trunk/psLib/src/types/psMetadataItemCompare.c
===================================================================
--- /trunk/psLib/src/types/psMetadataItemCompare.c	(revision 19983)
+++ /trunk/psLib/src/types/psMetadataItemCompare.c	(revision 19984)
@@ -118,21 +118,22 @@
      /* does template specify a boolean operation in comment? */ \
      compareOp op = getCompareOp(template);  \
+     psTrace("psLib.types", 10, "Comparing %f %x %f\n", (float)(COMPARE), op, (float)(TEMPLATE)); \
      switch (op) { \
        case COMPARE_OP_EQ: \
          if (FLOATINGPOINT) { \
-             return fabs(TEMPLATE - COMPARE) < EQ_TOL; \
+             return fabs((TEMPLATE) - ((COMPARE))) < EQ_TOL; \
          } else { \
-             return TEMPLATE == COMPARE; \
+             return (TEMPLATE) == (COMPARE); \
          } \
        case COMPARE_OP_LT: \
-         return COMPARE < TEMPLATE; \
+         return (COMPARE) < (TEMPLATE); \
        case COMPARE_OP_LE: \
-         return COMPARE <= TEMPLATE; \
+         return (COMPARE) <= (TEMPLATE); \
        case COMPARE_OP_GT: \
-         return COMPARE > TEMPLATE; \
+         return (COMPARE) > (TEMPLATE); \
        case COMPARE_OP_GE: \
-         return COMPARE >= TEMPLATE; \
+         return (COMPARE) >= (TEMPLATE); \
        case COMPARE_OP_NE: \
-         return COMPARE != TEMPLATE; \
+         return (COMPARE) != (TEMPLATE); \
        default: \
          psAbort("all cases should have been handled..."); \
