diff --git a/lib/bugsnag/cleaner.rb b/lib/bugsnag/cleaner.rb
index <HASH>..<HASH> 100644
--- a/lib/bugsnag/cleaner.rb
+++ b/lib/bugsnag/cleaner.rb
@@ -38,7 +38,7 @@ module Bugsnag
         end
         clean_hash
       when Array, Set
-        obj.map { |el| traverse_object(el, seen, scope) }.compact
+        obj.map { |el| traverse_object(el, seen, scope) }
       when Numeric, TrueClass, FalseClass
         obj
       when String
diff --git a/spec/cleaner_spec.rb b/spec/cleaner_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/cleaner_spec.rb
+++ b/spec/cleaner_spec.rb
@@ -19,6 +19,11 @@ describe Bugsnag::Cleaner do
       expect(subject.clean_object(a)).to eq(["[RECURSION]", "hello"])
     end
 
+    it "doesn't remove nil from arrays" do
+      a = ["b", nil, "c"]
+      expect(subject.clean_object(a)).to eq(["b", nil, "c"])
+    end
+
     it "allows multiple copies of the same string" do
       a = {:name => "bugsnag"}
       a[:second] = a[:name]
Prevent nil from being cleaned in arrays and sets (#<I>)