diff --git a/lib/geocoder/configuration.rb b/lib/geocoder/configuration.rb
index e40e2521e97eb1e58e8c00c961eb865396636a9f..30d5f82b4baf44947854d3f90f1802e80ab450e1 100644
--- a/lib/geocoder/configuration.rb
+++ b/lib/geocoder/configuration.rb
@@ -13,6 +13,20 @@ module Geocoder
     end
   end
 
+  ##
+  # Direct read access to the singleton's config data.
+  #
+  def self.config
+    Configuration.instance.data
+  end
+
+  ##
+  # Direct write access to the singleton's config data.
+  #
+  def self.config=(value)
+    Configuration.instance.data = value
+  end
+
   ##
   # This class handles geocoder Geocoder configuration
   # (geocoding service provider, caching, units of measurement, etc).
@@ -54,7 +68,7 @@ module Geocoder
       :distances
     ]
 
-    attr_reader :data
+    attr_accessor :data
 
     OPTIONS.each do |o|
       define_method o do
@@ -72,6 +86,7 @@ module Geocoder
 
     def set_defaults
       @data = {
+        # geocoding options
         :timeout      => 3,           # geocoding service timeout (secs)
         :lookup       => :google,     # name of street address geocoding service (symbol)
         :ip_lookup    => :freegeoip,  # name of IP address geocoding service (symbol)
diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb
index db42313b35ba3a9ae22420746f6d7bb82673af1a..087bac465e1acd3cb5c2c8f0e44a757e28d054c4 100644
--- a/lib/geocoder/lookups/base.rb
+++ b/lib/geocoder/lookups/base.rb
@@ -151,7 +151,7 @@ module Geocoder
         raise_error(err) or warn "Geocoding API connection cannot be established."
       rescue TimeoutError => err
         raise_error(err) or warn "Geocoding API not responding fast enough " +
-          "(see Geocoder::Configuration.timeout to set limit)."
+          "(use Geocoder.config[:timeout] to set limit)."
       end
 
       ##
diff --git a/test/configuration_test.rb b/test/configuration_test.rb
index 14859bf788c53cf5db02d1b3bb22aff5ff47310d..6b85d39a3be8d3a5fe6e1cd1f0ef5dd28d64928c 100644
--- a/test/configuration_test.rb
+++ b/test/configuration_test.rb
@@ -16,11 +16,13 @@ class ConfigurationTest < Test::Unit::TestCase
   def test_setting_with_class_method
     Geocoder::Configuration.units = :test
     assert_equal :test, Geocoder.configure.units
+    assert_equal :test, Geocoder.config[:units]
   end
 
   def test_setting_with_configure_method
     Geocoder.configure.units = :test
     assert_equal :test, Geocoder::Configuration.units
+    assert_equal :test, Geocoder.config[:units]
   end
 
   def test_setting_with_block_syntax
@@ -29,6 +31,7 @@ class ConfigurationTest < Test::Unit::TestCase
     end
     assert_equal :test, Geocoder::Configuration.units
     assert_equal :test, Geocoder.configure.units
+    assert_equal :test, Geocoder.config[:units]
   end
 
   def test_model_configuration