Make Streams.stream(Collection) null-safe.
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 75e17ff..c9e9635 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -50,6 +50,7 @@
     <action issue="LANG-1646" type="fix" dev="aherbert" due-to="Alex Herbert">NumberUtils.createNumber() to return requested floating point type for zero.</action>
     <action                   type="fix" dev="ggregory" due-to="SpotBugs, Gary Gregory">DMI: Random object created and used only once (DMI_RANDOM_USED_ONLY_ONCE); Better multi-threaded behavior.</action>
     <action issue="LANG-1646" type="fix" dev="aherbert" due-to="rturo Bernal">Redundant Collection operation. Use Collections.emptyIterator() #738.</action>
+    <action                   type="fix" dev="ggregory" due-to="Gary Gregory">Make Streams.stream(Collection) null-safe.</action>
     <!-- ADD -->
     <action                   type="add" dev="ggregory" due-to="Gary Gregory">Add EnumUtils.getEnumSystemProperty(...).</action>
     <action                   type="add" dev="ggregory" due-to="Gary Gregory">Add TriConsumer.</action>
diff --git a/src/main/java/org/apache/commons/lang3/stream/Streams.java b/src/main/java/org/apache/commons/lang3/stream/Streams.java
index d9d6a2a..b564ff9 100644
--- a/src/main/java/org/apache/commons/lang3/stream/Streams.java
+++ b/src/main/java/org/apache/commons/lang3/stream/Streams.java
@@ -426,6 +426,10 @@
         }
     }
 
+    private static <O> Stream<O> nullSafeStream(final Collection<O> collection) {
+        return collection == null ? Stream.empty() : collection.stream();
+    }
+
     /**
      * Null-safe version of {@link Stream#of(Object[])}.
      *
@@ -476,7 +480,7 @@
      * @return The {@link FailableStream}, which has been created by converting the stream.
      */
     public static <O> FailableStream<O> stream(final Collection<O> stream) {
-        return stream(stream.stream());
+        return stream(nullSafeStream(stream));
     }
 
     /**
diff --git a/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java b/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java
index 8fcb4ed..c7a5cdd 100644
--- a/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java
+++ b/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java
@@ -143,6 +143,18 @@
     }
 
     @Test
+    public void testStreamCollection() {
+        final List<String> input = Arrays.asList("1", "2", "3", "4", "5", "6");
+        assertEquals(6, Streams.stream(input).collect(Collectors.toList()).size());
+    }
+
+    @Test
+    public void testStreamCollectionNull() {
+        final List<String> input = null;
+        assertEquals(0, Streams.stream(input).collect(Collectors.toList()).size());
+    }
+
+    @Test
     public void testSimpleStreamFilter() {
         final List<String> input = Arrays.asList("1", "2", "3", "4", "5", "6");
         final List<Integer> output = Failable.stream(input).map(Integer::valueOf).filter(i -> (i.intValue() % 2 == 0))