diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 096e732c8..f30cdb9e6 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -98,7 +98,10 @@
Fix flaky EmptyPropertiesTest#testSave.
- Use java.lang.Objects#equals; eliminate a couple of nulls #307
+ Use java.lang.Objects#equals; eliminate a couple of nulls #307.
+
+
+ CollectionUtils.removeAll() not throwing NPE #340.
diff --git a/src/main/java/org/apache/commons/collections4/ListUtils.java b/src/main/java/org/apache/commons/collections4/ListUtils.java
index e62a72f08..274e2b50a 100644
--- a/src/main/java/org/apache/commons/collections4/ListUtils.java
+++ b/src/main/java/org/apache/commons/collections4/ListUtils.java
@@ -533,6 +533,8 @@ public class ListUtils {
* @since 3.2
*/
public static List removeAll(final Collection collection, final Collection> remove) {
+ Objects.requireNonNull(collection, "collection");
+ Objects.requireNonNull(remove, "remove");
final List list = new ArrayList<>();
for (final E obj : collection) {
if (!remove.contains(obj)) {
diff --git a/src/test/java/org/apache/commons/collections4/ListUtilsTest.java b/src/test/java/org/apache/commons/collections4/ListUtilsTest.java
index b22f177ef..12d552584 100644
--- a/src/test/java/org/apache/commons/collections4/ListUtilsTest.java
+++ b/src/test/java/org/apache/commons/collections4/ListUtilsTest.java
@@ -369,6 +369,12 @@ public class ListUtilsTest {
assertThrows(NullPointerException.class, () -> ListUtils.removeAll(null, null),
"expecting NullPointerException");
+
+ assertThrows(NullPointerException.class, () -> ListUtils.removeAll(null, new ArrayList