diff --git a/lib/mail/body.rb b/lib/mail/body.rb
index <HASH>..<HASH> 100644
--- a/lib/mail/body.rb
+++ b/lib/mail/body.rb
@@ -35,7 +35,7 @@ module Mail
       if string.blank?
         @raw_source = ''
       else
-        @raw_source = string
+        @raw_source = string.to_s
       end
       @encoding = nil
       set_charset
diff --git a/spec/mail/body_spec.rb b/spec/mail/body_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/mail/body_spec.rb
+++ b/spec/mail/body_spec.rb
@@ -39,6 +39,15 @@ describe Mail::Body do
       body.to_s.should == ''
     end
 
+    it "should accept an array as the body and join it" do
+      doing { Mail::Body.new(["line one\n", "line two\n"]) }.should_not raise_error
+    end
+
+    it "should accept an array as the body and join it" do
+      body = Mail::Body.new(["line one\n", "line two\n"])
+      body.encoded.should == "line one\r\nline two\r\n"
+    end
+
   end
 
   describe "encoding" do
Body should call to_s on given input... incase someone gave it an IO.readlines result (Array)