Index: lib/xmlrpc/parser.rb =================================================================== --- lib/xmlrpc/parser.rb (revision 27152) +++ lib/xmlrpc/parser.rb (working copy) @@ -170,7 +170,7 @@ private # - # remove all whitespaces but in the tags i4, int, boolean.... + # remove all whitespaces but in the tags i4, i8, int, boolean.... # and all comments # def removeWhitespacesAndComments(node) @@ -180,7 +180,7 @@ case _nodeType(nd) when :TEXT # TODO: add nil? - unless %w(i4 int boolean string double dateTime.iso8601 base64).include? node.nodeName + unless %w(i4 i8 int boolean string double dateTime.iso8601 base64).include? node.nodeName if node.nodeName == "value" if not node.childNodes.to_a.detect {|n| _nodeType(n) == :ELEMENT}.nil? @@ -254,7 +254,7 @@ def integer(node) #TODO: check string for float because to_i returnsa # 0 when wrong string - nodeMustBe(node, %w(i4 int)) + nodeMustBe(node, %w(i4 i8 int)) hasOnlyOneChild(node) Convert.int(text(node.firstChild)) @@ -416,7 +416,7 @@ text_zero_one(node) when :ELEMENT case child.nodeName - when "i4", "int" then integer(child) + when "i4", "i8", "int" then integer(child) when "boolean" then boolean(child) when "string" then string(child) when "double" then double(child) @@ -526,7 +526,7 @@ case name when "string" @value = @data - when "i4", "int" + when "i4", "i8", "int" @value = Convert.int(@data) when "boolean" @value = Convert.boolean(@data)