diff --git a/src/test/resources/test04.conf b/src/test/resources/test04.conf
new file mode 100644
index 00000000..1aa55df0
--- /dev/null
+++ b/src/test/resources/test04.conf
@@ -0,0 +1,305 @@
+# This is an unmodified akka-reference.conf, except for this
+# comment and quoting one key that contained slashes.
+# Note: the outer akka{} would not be used in the usual setup
+# with this config lib.
+
+##############################
+# Akka Reference Config File #
+##############################
+
+# This the reference config file has all the default settings.
+# All these could be removed with no visible effect.
+# Modify as needed.
+# This file is imported in the 'akka.conf' file. Make your edits/overrides there.
+
+akka {
+  version = "2.0-SNAPSHOT" # Akka version, checked against the runtime version of Akka.
+
+  enabled-modules = []     # Comma separated list of the enabled modules. Options: ["cluster", "camel", "http"]
+
+  time-unit = "seconds"    # Time unit for all timeout properties throughout the config
+
+  event-handlers = ["akka.event.Logging$DefaultLogger"] # Event handlers to register at boot time (Logging$DefaultLogger logs to STDOUT)
+  loglevel        = "WARNING"                           # Options: ERROR, WARNING, INFO, DEBUG
+                                                        # this level is used by the configured loggers (see "event-handlers") as soon
+                                                        # as they have been started; before that, see "stdout-loglevel"
+  stdout-loglevel = "WARNING"                           # Loglevel for the very basic logger activated during AkkaApplication startup
+
+  event-handler-dispatcher {
+      type = "Dispatcher"              # Must be one of the following
+                                       # Dispatcher, (BalancingDispatcher, only valid when all actors using it are of the same type),
+                                       # A FQCN to a class inheriting MessageDispatcherConfigurator with a no-arg visible constructor
+      name = "EventHandlerDispatcher"  # Optional, will be a generated UUID if omitted
+      keep-alive-time = 60             # Keep alive time for threads
+      core-pool-size = 1               # No of core threads
+      max-pool-size  = 8               # Max no of threads
+      executor-bounds = -1             # Makes the Executor bounded, -1 is unbounded
+      task-queue-size = -1             # Specifies the bounded capacity of the task queue (< 1 == unbounded)
+      task-queue-type = "linked"       # Specifies which type of task queue will be used, can be "array" or "linked" (default)
+      allow-core-timeout = on          # Allow core threads to time out
+      rejection-policy = "caller-runs" # abort, caller-runs, discard-oldest, discard
+      throughput = 5                   # Throughput for Dispatcher, set to 1 for complete fairness
+      throughput-deadline-time = -1    # Throughput deadline for Dispatcher, set to 0 or negative for no deadline
+      mailbox-capacity = -1            # If negative (or zero) then an unbounded mailbox is used (default)
+                                       # If positive then a bounded mailbox is used and the capacity is set using the property
+                                       # NOTE: setting a mailbox to 'blocking' can be a bit dangerous, could lead to deadlock, use with care
+                                       # The following are only used for Dispatcher and only if mailbox-capacity > 0
+      mailbox-push-timeout-time = 10   # Specifies the timeout to add a new message to a mailbox that is full - negative number means infinite timeout
+                                       #       (in unit defined by the time-unit property)
+    }
+
+  # These boot classes are loaded (and created) automatically when the Akka Microkernel boots up
+  #     Can be used to bootstrap your application(s)
+  #     Should be the FQN (Fully Qualified Name) of the boot class which needs to have a default constructor
+  # boot = ["sample.camel.Boot",
+  #         "sample.rest.java.Boot",
+  #         "sample.rest.scala.Boot",
+  #         "sample.security.Boot"]
+  boot = []
+
+  actor {
+    timeout = 5                     # Default timeout for Future based invocations
+                                    #    - Actor:        ask && ?
+                                    #    - UntypedActor: ask
+                                    #    - TypedActor:   methods with non-void return type
+    serialize-messages = off        # Does a deep clone of (non-primitive) messages to ensure immutability
+    throughput = 5                  # Default throughput for all Dispatcher, set to 1 for complete fairness
+    throughput-deadline-time = -1   # Default throughput deadline for all Dispatcher, set to 0 or negative for no deadline
+    dispatcher-shutdown-timeout = 1 # Using the akka.time-unit, how long dispatchers by default will wait for new actors until they shut down
+
+    deployment {
+
+      "/app/service-ping" {                                               # deployment id pattern
+
+        router = "round-robin"                                          # routing (load-balance) scheme to use
+                                                                        #     available: "direct", "round-robin", "random", "scatter-gather"
+                                                                        #                "least-cpu", "least-ram", "least-messages"
+                                                                        #     or:        fully qualified class name of the router class
+                                                                        #     default is "direct";
+                                                                        #     if 'replication' is used then the only available router is "direct"
+
+        nr-of-instances = 3                                             # number of actor instances in the cluster
+                                                                        #     available: positive integer (1-N) or the string "auto" for auto-scaling
+                                                                        #     default is '1'
+                                                                        #     if the "direct" router is used then this element is ignored (always '1')
+
+        #create-as {
+        #  class = "com.biz.app.MyActor"                                # FIXME document 'create-as'
+        #}
+
+        remote {
+          nodes = ["wallace:2552", "gromit:2552"]                       # A list of hostnames and ports for instantiating the remote actor instances
+                                                                        #     The format should be on "hostname:port", where:
+                                                                        #         - hostname can be either hostname or IP address the remote actor should connect to
+                                                                        #         - port should be the port for the remote server on the other node
+        }
+
+        #cluster {                                                      # defines the actor as a clustered actor
+                                                                        #     default (if omitted) is local non-clustered actor
+
+        #  preferred-nodes = ["node:node1"]                             # a list of preferred nodes for instantiating the actor instances on
+                                                                        #     defined as node name
+                                                                        #     available: "node:<node name>"
+
+
+        #  replication {                                                # use replication or not? only makes sense for a stateful actor
+
+            # FIXME should we have this config option here? If so, implement it all through.
+        #    serialize-mailbox = off                                    # should the actor mailbox be part of the serialized snapshot?
+                                                                        #     default is 'off'
+
+        #    storage = "transaction-log"                                # storage model for replication
+                                                                        #     available: "transaction-log" and "data-grid"
+                                                                        #     default is "transaction-log"
+
+        #    strategy = "write-through"                                 # guaranteees for replication
+                                                                        #     available: "write-through" and "write-behind"
+                                                                        #     default is "write-through"
+
+        #  }
+        #}
+      }
+    }
+
+    default-dispatcher {
+      type = "Dispatcher"              # Must be one of the following
+                                       # Dispatcher, (BalancingDispatcher, only valid when all actors using it are of the same type),
+                                       # A FQCN to a class inheriting MessageDispatcherConfigurator with a no-arg visible constructor
+      name = "MyDispatcher"            # Optional, will be a generated UUID if omitted
+      keep-alive-time = 60             # Keep alive time for threads
+      core-pool-size-factor = 8.0      # No of core threads ... ceil(available processors * factor)
+      max-pool-size-factor  = 8.0      # Max no of threads ... ceil(available processors * factor)
+      executor-bounds = -1             # Makes the Executor bounded, -1 is unbounded
+      task-queue-size = -1             # Specifies the bounded capacity of the task queue (< 1 == unbounded)
+      task-queue-type = "linked"       # Specifies which type of task queue will be used, can be "array" or "linked" (default)
+      allow-core-timeout = on          # Allow core threads to time out
+      rejection-policy = "caller-runs" # abort, caller-runs, discard-oldest, discard
+      throughput = 5                   # Throughput for Dispatcher, set to 1 for complete fairness
+      throughput-deadline-time = -1    # Throughput deadline for Dispatcher, set to 0 or negative for no deadline
+      mailbox-capacity = -1            # If negative (or zero) then an unbounded mailbox is used (default)
+                                       # If positive then a bounded mailbox is used and the capacity is set using the property
+                                       # NOTE: setting a mailbox to 'blocking' can be a bit dangerous, could lead to deadlock, use with care
+                                       # The following are only used for Dispatcher and only if mailbox-capacity > 0
+      mailbox-push-timeout-time = 10   # Specifies the timeout to add a new message to a mailbox that is full - negative number means infinite timeout
+                                       #       (in unit defined by the time-unit property)
+    }
+
+    debug {
+      receive = off     # enable function of Actor.loggable(), which is to log any received message at DEBUG level
+      autoreceive = off # enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill and the like)
+      lifecycle = off   # enable DEBUG logging of actor lifecycle changes
+    }
+
+    mailbox {
+
+      file-based {
+        directory-path = "./_mb"
+        max-items = 2147483647
+        max-size = 2147483647
+        max-items = 2147483647
+        max-age = 0
+        max-journal-size = 16777216 # 16 * 1024 * 1024
+        max-memory-size = 134217728 # 128 * 1024 * 1024
+        max-journal-overflow = 10
+        max-journal-size-absolute = 9223372036854775807
+        discard-old-when-full = on
+        keep-journal = on
+        sync-journal = off
+      }
+
+      redis {
+        hostname = "127.0.0.1"
+        port = 6379
+      }
+
+      mongodb {
+        # Any specified collection name will be used as a prefix for collections that use durable mongo mailboxes
+        uri = "mongodb://localhost/akka.mailbox" # Follow Mongo URI Spec - http://www.mongodb.org/display/DOCS/Connections
+
+        # Configurable timeouts for certain ops
+        timeout {
+          read = 3000 # number of milliseconds to wait for a read to succeed before timing out the future
+          write = 3000 # number of milliseconds to wait for a write to succeed before timing out the future
+        }
+      }
+
+      zookeeper {
+        server-addresses = "localhost:2181"
+        session-timeout = 60
+        connection-timeout = 60
+        blocking-queue = on
+      }
+
+      beanstalk {
+        hostname = "127.0.0.1"
+        port = 11300
+        reconnect-window = 5
+        message-submit-delay = 0
+        message-submit-timeout = 5
+        message-time-to-live = 120
+      }
+    }
+
+    # Entries for pluggable serializers and their bindings. If a binding for a specific class is not found,
+    # then the default serializer (Java serialization) is used.
+    #
+    # serializers {
+    #   java = "akka.serialization.JavaSerializer"
+    #   proto = "akka.testing.ProtobufSerializer"
+    #   sjson = "akka.testing.SJSONSerializer"
+    #   default = "akka.serialization.JavaSerializer"
+    # }
+
+    # serialization-bindings {
+    #   java = ["akka.serialization.SerializeSpec$Address",
+    #           "akka.serialization.MyJavaSerializableActor",
+    #           "akka.serialization.MyStatelessActorWithMessagesInMailbox",
+    #           "akka.serialization.MyActorWithProtobufMessagesInMailbox"]
+    #   sjson = ["akka.serialization.SerializeSpec$Person"]
+    #   proto = ["com.google.protobuf.Message",
+    #            "akka.actor.ProtobufProtocol$MyMessage"]
+    # }
+  }
+
+  remote {
+    # FIXME rename to transport
+    layer = "akka.cluster.netty.NettyRemoteSupport"
+
+    secure-cookie = ""                            # Generate your own with '$AKKA_HOME/scripts/generate_config_with_secure_cookie.sh'
+                                                  #     or using 'akka.util.Crypt.generateSecureCookie'
+
+    remote-daemon-ack-timeout = 30                # Timeout for ACK of cluster operations, lik checking actor out etc.
+
+    use-passive-connections = on                  # Reuse inbound connections for outbound messages
+
+    failure-detector {                            # accrual failure detection config
+      threshold = 8                               # defines the failure detector threshold
+                                                  #     A low threshold is prone to generate many wrong suspicions but ensures a
+                                                  #     quick detection in the event of a real crash. Conversely, a high threshold
+                                                  #     generates fewer mistakes but needs more time to detect actual crashes
+      max-sample-size = 1000
+    }
+
+    server {
+      port = 2552                                 # The default remote server port clients should connect to. Default is 2552 (AKKA)
+      message-frame-size = 1048576                # Increase this if you want to be able to send messages with large payloads
+      connection-timeout = 120                    # Length in time-unit
+      require-cookie = off                        # Should the remote server require that it peers share the same secure-cookie (defined in the 'remote' section)?
+      untrusted-mode = off                        # Enable untrusted mode for full security of server managed actors, allows untrusted clients to connect.
+      backlog = 4096                              # Sets the size of the connection backlog
+    }
+
+    client {
+      buffering {
+        retry-message-send-on-failure = false     # Should message buffering on remote client error be used (buffer flushed on successful reconnect)
+        capacity = -1                             # If negative (or zero) then an unbounded mailbox is used (default)
+                                                  #     If positive then a bounded mailbox is used and the capacity is set using the property
+      }
+      reconnect-delay = 5
+      read-timeout = 3600
+      message-frame-size = 1048576
+      reap-futures-delay = 5
+      reconnection-time-window = 600              # Maximum time window that a client should try to reconnect for
+    }
+  }
+
+  cluster {
+    name = "test-cluster"
+    zookeeper-server-addresses = "localhost:2181" # comma-separated list of '<hostname>:<port>' elements
+    max-time-to-wait-until-connected = 30
+    session-timeout = 60
+    connection-timeout = 60
+    include-ref-node-in-replica-set = on          # Can a replica be instantiated on the same node as the cluster reference to the actor
+                                                  #     Default: on
+    log-directory = "_akka_cluster"               # Where ZooKeeper should store the logs and data files
+
+    replication {
+      digest-type = "MAC"                         # Options: CRC32 (cheap & unsafe), MAC (expensive & secure using password)
+      password = "secret"                         # FIXME: store open in file?
+      ensemble-size = 3
+      quorum-size = 2
+      snapshot-frequency = 1000                   # The number of messages that should be logged between every actor snapshot
+      timeout = 30                                # Timeout for asyncronous (write-behind) operations
+    }
+  }
+
+  stm {
+    fair             = on     # Should global transactions be fair or non-fair (non fair yield better performance)
+    max-retries      = 1000
+    timeout          = 5      # Default timeout for blocking transactions and transaction set (in unit defined by
+                              #     the time-unit property)
+    write-skew       = true
+    blocking-allowed = false
+    interruptible    = false
+    speculative      = true
+    quick-release    = true
+    propagation      = "requires"
+    trace-level      = "none"
+  }
+
+  test {
+    timefactor = "1.0"        # factor by which to scale timeouts during tests, e.g. to account for shared build system load
+    filter-leeway = 3         # time-units EventFilter.intercept waits after the block is finished until all required messages are received
+    single-expect-default = 3 # time-units to wait in expectMsg and friends outside of within() block by default
+  }
+}
diff --git a/src/test/scala/com/typesafe/config/impl/ConfigTest.scala b/src/test/scala/com/typesafe/config/impl/ConfigTest.scala
index 7b742c84..fa150a3a 100644
--- a/src/test/scala/com/typesafe/config/impl/ConfigTest.scala
+++ b/src/test/scala/com/typesafe/config/impl/ConfigTest.scala
@@ -652,4 +652,19 @@ class ConfigTest extends TestUtils {
         // equiv01/original.json was included (it has a slash in the name)
         assertEquals("a", conf.getString("equiv01.strings.a"))
     }
+
+    @Test
+    def test04LoadAkkaReference() {
+        val conf = Config.load("test04")
+
+        // Note, test04 is an unmodified old-style akka.conf,
+        // which means it has an outer akka{} namespace.
+        // that namespace wouldn't normally be used with
+        // this library because the conf object is not global,
+        // it's per-module already.
+        assertEquals("2.0-SNAPSHOT", conf.getString("akka.version"))
+        assertEquals(8, conf.getInt("akka.event-handler-dispatcher.max-pool-size"))
+        assertEquals("round-robin", conf.getString("akka.actor.deployment.\"/app/service-ping\".router"))
+        assertEquals(true, conf.getBoolean("akka.stm.quick-release"))
+    }
 }