diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java
index 1ce1356f4f03fa04a98eb9d9711924fa9c5d031d..2dd52bd2e51f479eaeda0a0a4a969767b1e16f2b 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java
@@ -134,15 +134,19 @@ public abstract class BinaryBooleanNode extends RBuiltinNode {
                     @Cached("createRecursive()") BinaryBooleanNode recursive) {
         Object recursiveLeft = left;
         if (isSymbolOrLang(left)) {
-            recursiveLeft = RString.valueOf(RDeparse.deparse(left));
+            recursiveLeft = deparseSymbolOrLang(left);
         }
         Object recursiveRight = right;
         if (isSymbolOrLang(right)) {
-            recursiveRight = RString.valueOf(RDeparse.deparse(right));
+            recursiveRight = deparseSymbolOrLang(right);
         }
         return recursive.execute(frame, recursiveLeft, recursiveRight);
     }
 
+    private static RString deparseSymbolOrLang(Object val) {
+        return RString.valueOf(RDeparse.deparse(val, RDeparse.MAX_Cutoff, false, RDeparse.KEEPINTEGER, -1));
+    }
+
     protected BinaryBooleanNode createRecursive() {
         return BinaryBooleanNode.create(factory);
     }
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
index 7b9a8c46ef9062d6930e0f07d1c8127946905846..55dbd9665d90b7e6759da861bb3962a2fd79b412 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
@@ -34312,6 +34312,14 @@ NULL
 [1] "some"
 [1] "test"
 
+##com.oracle.truffle.r.test.builtins.TestBuiltin_operators.testBinaryOperators#
+#as.symbol('*') == '*'
+[1] TRUE
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_operators.testBinaryOperators#
+#as.symbol('<-') == '<-'
+[1] TRUE
+
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_operators.testColon#
 #8.2:NULL
 Error in 8.2:NULL : argument of length 0
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java
index 8acdd22dea89864a1f5f08de95ca98fbb8d93eb8..d62360ad3ab488d8659dc3fa98e4d0180f73c377 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java
@@ -1926,6 +1926,13 @@ public class TestBuiltin_operators extends TestBase {
                         "data[c('a','b')] + 1; 1 + data[c('a','b')]; data[c('a','b')] + c(1,2); c(1,2) + data[c('a','b')]");
     }
 
+    @Test
+    public void testBooleanOperators() {
+        // tests that deparse in as.symbol removes backticks
+        assertEval("as.symbol('*') == '*'");
+        assertEval("as.symbol('<-') == '<-'");
+    }
+
     @Test
     public void testOperators() {
         assertEval("{ `+`(1,2) }");