diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Order.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Order.java
index ac41e8e5355ab9c72624c983bcef21c60928aa89..a3aa04791edfcdee8f32877b9552a29d4a481f69 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Order.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Order.java
@@ -178,6 +178,12 @@ public abstract class Order extends RPrecedenceBuiltinNode {
         return RNull.instance;
     }
 
+    @SuppressWarnings("unused")
+    @Specialization(guards = {"oneVec(args)", "isNull(args)"})
+    Object orderNull(byte naLast, boolean decreasing, RArgsValuesAndNames args) {
+        throw error(RError.Message.NOT_A_VECTOR, 1);
+    }
+
     @Specialization(guards = {"oneVec(args)", "isFirstIntegerPrecedence(args)"})
     Object orderInt(byte naLast, boolean decreasing, RArgsValuesAndNames args) {
         RAbstractIntVector v = (RAbstractIntVector) castVector(args.getArgument(0));
@@ -694,6 +700,10 @@ public abstract class Order extends RPrecedenceBuiltinNode {
         return isListPrecedence(args.getArgument(0));
     }
 
+    protected boolean isNull(RArgsValuesAndNames args) {
+        return args.getArgument(0) == RNull.instance;
+    }
+
     protected boolean noVec(RArgsValuesAndNames args) {
         return args.isEmpty();
     }
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 73654eed63e7660ab4b8024aa9a289a89d8863fe..ea87c1d8a9dd1e748c740c7f03404657d9b8f092 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
@@ -46123,6 +46123,10 @@ Error in options(list(NULL)) : list argument has no valid names
 'data.frame':	3 obs. of  1 variable:
  $ a: Factor w/ 3 levels "A wo","Far ",..: 1 2 3
 
+##com.oracle.truffle.r.test.builtins.TestBuiltin_order.testOrder#
+#order(NULL)
+Error in order(NULL) : argument 1 is not a vector
+
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_order.testOrder#
 #order(c('40 50', '405', '40 51', '4028', '40 20', '40 30', '404'))
 [1] 5 6 1 3 4 7 2
@@ -46132,6 +46136,10 @@ Error in options(list(NULL)) : list argument has no valid names
 Error in order(c(1, 2, 0), decreasing = NA) :
   'decreasing' elements must be TRUE or FALSE
 
+##com.oracle.truffle.r.test.builtins.TestBuiltin_order.testOrder#
+#order(c(NULL, c(1,2,0)))
+[1] 3 1 2
+
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_order.testOrder#
 #{ order() }
 NULL
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_order.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_order.java
index 5763cc90d503db4d178973cc9159ce6ebe5f1fa8..a6b41ccc504ddedddbf01d6b16fc120b9344be5f 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_order.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_order.java
@@ -166,5 +166,8 @@ public class TestBuiltin_order extends TestBase {
         assertEval("order(c(1,2,0), decreasing=NA)");
 
         assertEval("invisible(Sys.setlocale('LC_COLLATE', 'EN_us')); str(as.data.frame(list(a=c('A wo','Far ','abc ')))); invisible(Sys.setlocale('LC_COLLATE', 'C')); str(as.data.frame(list(a=c('A wo','Far ','abc '))));");
+
+        assertEval("order(NULL)");
+        assertEval("order(c(NULL, c(1,2,0)))");
     }
 }