Getting a nil not allowed mapping error when trying to send to a webservice

Hi all,
I'm trying to call a webservice using soap4r and I keep getting a
MappingError "nil not allowed"

I assume I'm not constructing my webservice call properly.
I call the wsdl like this:

class SMSMessage
  def initialize(send_num, destinations, sms_msg, send_date_time)
    @SendNameOrNumber = send_num
    @Destinations = destinations
    @SMSMessage = sms_msg
    @SendDateTime = send_date_time
  end

attr_accessor :SendNameOrNumber, :Destinations, :SMSMessage, :SendDateTime
end

msg = SMSMessage.new("0401666666", ["0401063296"], "Hi googlegroups",
DateTime.now)

soapResponse = client.sendSMSBatch(:UserName =>
"blah@hithere.com", :Password => "imstuckonthisproblem",
                                       :SMSMessage => msg)

The wsdl is this

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://
schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SendSMSBatch xmlns="http://commsonline.com/CommsOnlinePublicWS/
MobileGateway">
      <UserName>string</UserName>
      <Password>string</Password>
      <SMSMessage>
        <SendDateTime>dateTime</SendDateTime>
        <SMSMessage>string</SMSMessage>
        <Destinations>
          <string>string</string>
          <string>string</string>
        </Destinations>
        <Priority>Not_Set or Low_Priority or Normal_Priority or
High_Priority</Priority>
        <ClientReference>string</ClientReference>
        <SenderNameOrNumber>string</SenderNameOrNumber>
      </SMSMessage>
    </SendSMSBatch>
  </soap:Body>
</soap:Envelope>

Any help would be most appreciated...i've been bashing my head on this
for ages >.<

cheers
nimai