diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java
index 3cbd00ed57c3e9eaf903e10f38d786feb529a321..2d774b7c73d36ab3feaafe8032a4ee7b639b35ee 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java
@@ -33,6 +33,7 @@ import com.oracle.truffle.api.CompilerAsserts;
 import com.oracle.truffle.api.RootCallTarget;
 import com.oracle.truffle.api.Truffle;
 import com.oracle.truffle.api.frame.FrameDescriptor;
+import com.oracle.truffle.api.frame.FrameSlot;
 import com.oracle.truffle.api.frame.MaterializedFrame;
 import com.oracle.truffle.api.source.Source;
 import com.oracle.truffle.r.nodes.builtin.base.BasePackage;
@@ -116,6 +117,11 @@ public final class RBuiltinPackages implements RBuiltinLookup {
             } catch (ParseException e) {
                 throw new RInternalError(e, "error while parsing base source from %s", baseSource.getName());
             }
+            // forcibly clear last.warnings during startup:
+            FrameSlot slot = baseFrame.getFrameDescriptor().findFrameSlot("last.warning");
+            if (slot != null) {
+                FrameSlotChangeMonitor.setObject(baseFrame, slot, null);
+            }
         } finally {
             RContext.getInstance().setLoadingBase(false);
         }
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BitwiseFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BitwiseFunctions.java
index dc67759ab247512bf3874f8bb7d12c843877287b..6f8b4034f27b6222cb8a6a4359c65c82bcf71d22 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BitwiseFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BitwiseFunctions.java
@@ -91,14 +91,14 @@ public class BitwiseFunctions {
                             v = aVal ^ bVal;
                             break;
                         case SHIFTR:
-                            if (bVal > 31) {
+                            if (bVal > 31 || bVal < 0) {
                                 v = RRuntime.INT_NA;
                             } else {
                                 v = aVal >>> bVal;
                             }
                             break;
                         case SHIFTL:
-                            if (bVal > 31) {
+                            if (bVal > 31 || bVal < 0) {
                                 v = RRuntime.INT_NA;
                             } else {
                                 v = aVal << bVal;
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java
index e7ef99a9b49eb492b243f11975ce615772f76b82..0977298652e9af68fe7ab8bd7a591b384d8c388f 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java
@@ -22,7 +22,6 @@
  */
 package com.oracle.truffle.r.nodes.builtin.base;
 
-import com.oracle.truffle.api.CompilerDirectives;
 import static com.oracle.truffle.r.runtime.RDispatch.INTERNAL_GENERIC;
 import static com.oracle.truffle.r.runtime.builtins.RBehavior.PURE;
 import static com.oracle.truffle.r.runtime.builtins.RBuiltinKind.PRIMITIVE;
@@ -31,8 +30,9 @@ import java.util.Arrays;
 import java.util.function.DoublePredicate;
 import java.util.function.IntPredicate;
 
-import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
+import com.oracle.truffle.api.CompilerDirectives;
 import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
+import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.dsl.Fallback;
 import com.oracle.truffle.api.dsl.ImportStatic;
 import com.oracle.truffle.api.dsl.Specialization;
@@ -112,7 +112,7 @@ public class IsFiniteFunctions {
         protected RLogicalVector doFunConstant(RAbstractVector x, byte value) {
             byte[] b = new byte[x.getLength()];
             Arrays.fill(b, value);
-            return RDataFactory.createLogicalVector(b, RDataFactory.COMPLETE_VECTOR, getDims.getDimensions(x), getNames.getNames(x));
+            return transferDimNames(RDataFactory.createLogicalVector(b, RDataFactory.COMPLETE_VECTOR, getDims.getDimensions(x), getNames.getNames(x)), x);
         }
 
         protected RLogicalVector doFunDouble(RAbstractDoubleVector x, DoublePredicate fun) {
diff --git a/documentation/graphics.md b/documentation/graphics.md
index e940d16f39881787e71e3142786bacf1fd341b61..8cd2bfb9a4fa981c99f8ea45bd98b4c41523247a 100644
--- a/documentation/graphics.md
+++ b/documentation/graphics.md
@@ -94,3 +94,4 @@ FastR's grid implementation does not yet support:
 
 FastR does not plan to implement the R graphics engine display list
 and related functions. However, the grid display list is implemented.
+