diff --git a/Gemfile b/Gemfile
index 19d94cd403d32dfc5cec981f86b8c87bede53a43..b114997e63766aaffb45ad5066df769b59516390 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,7 +5,11 @@ gemspec
 group :development, :test do
   gem 'rake'
   gem 'mongoid'
-  gem 'bson_ext'
+  gem 'bson_ext', :platforms => :ruby
 
   gem 'rails'
-end
\ No newline at end of file
+
+  platforms :jruby do
+  	gem 'jruby-openssl'
+  end
+end
diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb
index 6c80e5ec8f44597ad8bde7e9c096ddffb8a26993..fddf8a0d4f3dcbe5fe64c2ae530e164c18c3337c 100644
--- a/lib/geocoder/lookups/base.rb
+++ b/lib/geocoder/lookups/base.rb
@@ -1,4 +1,5 @@
 require 'net/http'
+require 'net/https'
 require 'uri'
 
 unless defined?(ActiveSupport::JSON)
diff --git a/test/calculations_test.rb b/test/calculations_test.rb
index ee18f8361e464162cd36b7b3064d3bc8ae7bac4d..4f9fef0df46df8131fb82d67bd7f9b93e61f68d8 100644
--- a/test/calculations_test.rb
+++ b/test/calculations_test.rb
@@ -152,24 +152,24 @@ class CalculationsTest < Test::Unit::TestCase
 
   def test_extract_coordinates
     result = Geocoder::Calculations.extract_coordinates([ nil, nil ])
-    assert_equal [ Geocoder::Calculations::NAN ] * 2, result
+    assert is_nan_coordinates?(result)
 
     result = Geocoder::Calculations.extract_coordinates([ 1.0 / 3, 2.0 / 3 ])
     assert_in_delta 1.0 / 3, result.first, 1E-5
     assert_in_delta 2.0 / 3, result.last, 1E-5
 
     result = Geocoder::Calculations.extract_coordinates(nil)
-    assert_equal [ Geocoder::Calculations::NAN ] * 2, result
+    assert is_nan_coordinates?(result)
 
     result = Geocoder::Calculations.extract_coordinates('')
-    assert_equal [ Geocoder::Calculations::NAN ] * 2, result
+    assert is_nan_coordinates?(result)
 
     result = Geocoder::Calculations.extract_coordinates([ 'nix' ])
-    assert_equal [ Geocoder::Calculations::NAN ] * 2, result
+    assert is_nan_coordinates?(result)
 
     o = Object.new
     result = Geocoder::Calculations.extract_coordinates(o)
-    assert_equal [ Geocoder::Calculations::NAN ] * 2, result
+    assert is_nan_coordinates?(result)
 
     def o.to_coordinates
       [ 1.0 / 3, 2.0 / 3 ]
diff --git a/test/test_helper.rb b/test/test_helper.rb
index f0c1dbfec8bcbdf097527335dbf8f450ed04a650..ba48c1721ed5a353a55a68d96387f2ecb897b341 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -271,5 +271,14 @@ class Test::Unit::TestCase
   def street_lookups
     all_lookups - [:freegeoip]
   end
+
+  def is_nan_coordinates?(coordinates)
+    if defined?(::Float::NAN)
+      coordinates == ([ Geocoder::Calculations::NAN ] * 2 )
+    else
+      return false unless coordinates.respond_to? :size 
+      coordinates.size == 2 && coordinates[0].nan? && coordinates[1].nan?
+    end
+  end
 end