Index: interpreter/classes/IntegerClass.cpp
===================================================================
--- interpreter/classes/IntegerClass.cpp	(revision 13074)
+++ interpreter/classes/IntegerClass.cpp	(working copy)
@@ -1455,11 +1455,11 @@
 {
     requiredArgument(other, ARG_ONE);
     // there's no short cutting in Rexx, so we need  to validate all arguments.
-    RexxObject *otherTruth = booleanObject(other->truthValue(Error_Logical_value_method));
-    return (!truthValue(Error_Logical_value_method)) ? TheFalseObject : otherTruth;
+    bool        lhsTruth =                      truthValue(Error_Logical_value_method);
+    RexxObject *rhsTruth = booleanObject(other->truthValue(Error_Logical_value_method));
+    return (!lhsTruth) ? TheFalseObject : rhsTruth;
 }
 
-
 /**
  * Logically OR two objects together
  *
@@ -1470,8 +1470,9 @@
 RexxObject *RexxInteger::orOp(RexxObject *other)
 {
     requiredArgument(other, ARG_ONE);
-    RexxObject *otherTruth = booleanObject(other->truthValue(Error_Logical_value_method));
-    return truthValue(Error_Logical_value_method) ? TheTrueObject : otherTruth;
+    bool        lhsTruth =                      truthValue(Error_Logical_value_method);
+    RexxObject *rhsTruth = booleanObject(other->truthValue(Error_Logical_value_method));
+    return lhsTruth ? TheTrueObject : rhsTruth;
 }
 
 
@@ -1485,15 +1486,16 @@
 RexxObject *RexxInteger::xorOp(RexxObject *other)
 {
     requiredArgument(other, ARG_ONE);
-    bool truth = other->truthValue(Error_Logical_value_method);
+    bool lhsTruth =        truthValue(Error_Logical_value_method);
+    bool rhsTruth = other->truthValue(Error_Logical_value_method);
 
-    if (!truthValue(Error_Logical_value_method))
+    if (!lhsTruth)
     {
-        return booleanObject(truth);
+        return booleanObject( rhsTruth);
     }
     else
     {
-        return booleanObject(!truth);
+        return booleanObject(!rhsTruth);
     }
 }
 
Index: interpreter/classes/StringClass.cpp
===================================================================
--- interpreter/classes/StringClass.cpp	(revision 13074)
+++ interpreter/classes/StringClass.cpp	(working copy)
@@ -1958,9 +1958,10 @@
 {
     requiredArgument(other, ARG_ONE);
 
-    bool otherTruth = other->truthValue(Error_Logical_value_method);
+    bool lhsTruth =        truthValue(Error_Logical_value_method);
+    bool rhsTruth = other->truthValue(Error_Logical_value_method);
     // perform the operation
-    return booleanObject(truthValue(Error_Logical_value_method) && otherTruth);
+    return booleanObject(lhsTruth && rhsTruth);
 }
 
 
@@ -1975,9 +1976,10 @@
 {
     requiredArgument(other, ARG_ONE);
 
-    bool otherTruth = other->truthValue(Error_Logical_value_method);
+    bool lhsTruth =        truthValue(Error_Logical_value_method);
+    bool rhsTruth = other->truthValue(Error_Logical_value_method);
 
-    return booleanObject(truthValue(Error_Logical_value_method) || otherTruth);
+    return booleanObject(lhsTruth || rhsTruth);
 }
 
 
@@ -1992,10 +1994,11 @@
 {
     requiredArgument(other, ARG_ONE);
 
-    bool otherTruth = other->truthValue(Error_Logical_value_method);
+    bool lhsTruth =        truthValue(Error_Logical_value_method);
+    bool rhsTruth = other->truthValue(Error_Logical_value_method);
 
     // != in C++ is essentially an exclusive OR.
-    return booleanObject(truthValue(Error_Logical_value_method) != otherTruth);
+    return booleanObject(lhsTruth != rhsTruth);
 }
 
 
