diff --git a/lib/linkedin/client.rb b/lib/linkedin/client.rb
index <HASH>..<HASH> 100644
--- a/lib/linkedin/client.rb
+++ b/lib/linkedin/client.rb
@@ -13,7 +13,7 @@ module LinkedIn
 
     def initialize(options={}, &block)
       configure options, &block
-      self.access_token ||= self.config[:access_token].to_s
+      self.access_token ||= self.config.access_token.to_s
     end
 
     def connection 
@@ -87,7 +87,7 @@ module LinkedIn
 
     def url_for(option_key)
       host = config.auth_host
-      path = config["#{option_key}_path".to_sym]
+      path = config.send("#{option_key}_path")
       "#{host}#{path}"
     end
   end
diff --git a/lib/linkedin/configuration.rb b/lib/linkedin/configuration.rb
index <HASH>..<HASH> 100644
--- a/lib/linkedin/configuration.rb
+++ b/lib/linkedin/configuration.rb
@@ -22,7 +22,7 @@ module LinkedIn
 
     module BaseConfiguration
       def configure(config={}, &block)
-        self.config.marshal_load self.config.to_h.merge(config)
+        self.config.marshal_load self.config.marshal_dump.merge(config)
 
         yield self.config if block_given?
 
@@ -35,7 +35,7 @@ module LinkedIn
       end
 
       def defaults(*keys)
-        config.to_h.slice *keys
+        config.marshal_dump.slice *keys
       end
     end
Pre-<I> openstruct support