diff --git a/lib/geocoder/results/ipinfo_io.rb b/lib/geocoder/results/ipinfo_io.rb
index e588fa8e8caddffddc117d7f9b995fc22945fe74..25f9f9245f52209178beabf6d7df7e2a96fabf2b 100644
--- a/lib/geocoder/results/ipinfo_io.rb
+++ b/lib/geocoder/results/ipinfo_io.rb
@@ -8,7 +8,7 @@ module Geocoder::Result
     end
 
     def coordinates
-      @data['loc'].split(",").map(&:to_f)
+      @data['loc'].to_s.split(",").map(&:to_f)
     end
 
     def city
@@ -36,7 +36,7 @@ module Geocoder::Result
     end
 
     def self.response_attributes
-      %w['ip', 'region', 'postal']
+      %w(ip region postal)
     end
 
     response_attributes.each do |a|
diff --git a/test/unit/lookups/ipinfo_io_test.rb b/test/unit/lookups/ipinfo_io_test.rb
index 60b3ca311f3a3dd981cd126ed9e2c0e5bfa2e576..a66093ce4ad91e63c3bfff0ac81b420ca7c00c94 100644
--- a/test/unit/lookups/ipinfo_io_test.rb
+++ b/test/unit/lookups/ipinfo_io_test.rb
@@ -22,4 +22,12 @@ class IpinfoIoTest < GeocoderTestCase
     assert_equal 0.0, result.latitude
     assert_equal "127.0.0.1", result.ip
   end
+
+  def test_ipinfo_io_extra_attributes
+    Geocoder.configure(:ip_lookup => :ipinfo_io, :use_https => true)
+    result = Geocoder.search("8.8.8.8").first
+    assert_equal "8.8.8.8", result.ip
+    assert_equal "California", result.region
+    assert_equal "94040", result.postal
+  end
 end