<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,2 +1,4 @@
 .DS_Store
-pkg/*
\ No newline at end of file
+pkg/*
+.svn
+</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ module Hominid
 
   class HominidError &lt; StandardError
     def initialize(error)
-      super(&quot;#{error.message}&quot;)
+      super(&quot;&lt;#{error.faultCode}&gt; #{error.message}&quot;)
     end
   end
 
@@ -29,12 +29,11 @@ module Hominid
   class NotSubscribed &lt; HominidListEmailError
   end
 
-  class HominidCommunicationError &lt; HominidError
+  class HominidCommunicationError &lt; StandardError
     def initialize(message)
       super(message)
     end
   end
-
 end
 
 begin</diff>
      <filename>lib/hominid.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,10 +19,10 @@ module Hominid
       @config = defaults.merge(config).freeze
       @chimpApi = XMLRPC::Client.new2(&quot;http://#{api_endpoint}.api.mailchimp.com/#{MAILCHIMP_API_VERSION}/&quot;)
     end
-    
+
     # Security related methods
     # --------------------------------
-    
+
     def add_api_key
       @chimpApi.call(&quot;apikeyAdd&quot;, *@config.values_at(:username, :password, :api_key))
     end
@@ -35,7 +35,7 @@ module Hominid
       username, password = *@config.values_at(:username, :password)
       @chimpApi.call(&quot;apikeys&quot;, username, password, include_expired)
     end
-    
+
     # Used internally by Hominid
     # --------------------------------
 
@@ -58,12 +58,17 @@ module Hominid
       else
         raise HominidError.new(error)
       end
-
+    rescue RuntimeError =&gt; error
+      if error.message =~ /Wrong type NilClass\. Not allowed!/
+        hashes = args.select{|a| a.is_a? Hash}
+        errors = hashes.select{|k, v| v.nil? }.collect{ |k, v| &quot;#{k} is Nil.&quot; }.join(' ')
+        raise HominidCommunicationError.new(errors)
+      else
+        raise error
+      end
     rescue Exception =&gt; error
       raise HominidCommunicationError.new(error.message)
     end
   end
 end
-    
-    
-    
\ No newline at end of file
+</diff>
      <filename>lib/hominid/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,13 +1,13 @@
 module Hominid
 
   class List &lt; Base
-    
+
     # List related methods
     # --------------------------------
 
     attr_reader :list_id
     attr_reader :attributes
-    
+
     def initialize(*args)
       options = args.last.is_a?(Hash) ? args.last : {}
       raise HominidError.new('Please provide a List ID.') unless options[:id]
@@ -115,7 +115,7 @@ module Hominid
       options = apply_defaults_to({:update_existing =&gt; true}.merge(options))
       call(&quot;listBatchSubscribe&quot;, @list_id, subscribers, *options.values_at(:double_opt_in, :update_existing, :replace_interests))
     end
-    
+
     def unsubscribe(current_email, options = {})
       # Unsubscribe a list member
       options = apply_defaults_to({:delete_member =&gt; true}.merge(options))
@@ -135,4 +135,5 @@ module Hominid
     end
 
   end
-end
\ No newline at end of file
+end
+</diff>
      <filename>lib/hominid/list.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>3974591e2e874293be4ca5fe599953a1fe698d63</id>
    </parent>
  </parents>
  <author>
    <name>Michael Str&#252;der</name>
    <email>mike@mike-desktop.(none)</email>
  </author>
  <url>http://github.com/bgetting/hominid/commit/737b3ececac0e7550d4d2cadc407ec6bad078451</url>
  <id>737b3ececac0e7550d4d2cadc407ec6bad078451</id>
  <committed-date>2009-10-23T09:51:56-07:00</committed-date>
  <authored-date>2009-10-23T09:51:56-07:00</authored-date>
  <message>more Exception Handling</message>
  <tree>38ab35f314fac1114aca5fa772e8fbb08e56b8fd</tree>
  <committer>
    <name>Michael Str&#252;der</name>
    <email>mike@mike-desktop.(none)</email>
  </committer>
</commit>
