detail (macro evaluates twice its arguments)
diff --git a/lvm.c b/lvm.c
index 42d2776..6fa41d3 100644
--- a/lvm.c
+++ b/lvm.c
@@ -1,5 +1,5 @@
 /*
-** $Id: lvm.c,v 2.53 2005/08/24 16:15:49 roberto Exp $
+** $Id: lvm.c,v 2.54 2005/08/29 20:49:21 roberto Exp roberto $
 ** Lua virtual machine
 ** See Copyright Notice in lua.h
 */
@@ -568,8 +568,10 @@
         continue;
       }
       case OP_EQ: {
+        TValue *rb = RKB(i);
+        TValue *rc = RKC(i);
         Protect(
-          if (equalobj(L, RKB(i), RKC(i)) == GETARG_A(i))
+          if (equalobj(L, rb, rc) == GETARG_A(i))
             dojump(L, pc, GETARG_sBx(*pc));
         )
         pc++;