diff --git a/README.md b/README.md
index d05d86b..ae63343 100644
--- a/README.md
+++ b/README.md
@@ -53,6 +53,10 @@
 History
 -------
 
+v1.5.4, 23 Jun 2015
+-------------------
+ * [Issue #5](https://github.com/magiconair/properties/issues/5): Allow disabling of property expansion [DisableExpansion](http://godoc.org/github.com/magiconair/properties#Properties.DisableExpansion). When property expansion is disabled Properties become a simple key/value store and don't check for circular references.
+
 v1.5.3, 02 Jun 2015
 -------------------
  * [Issue #4](https://github.com/magiconair/properties/issues/4): Maintain key order in [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) and [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp)
diff --git a/properties.go b/properties.go
index edcaccc..6201f8b 100644
--- a/properties.go
+++ b/properties.go
@@ -47,6 +47,12 @@
 	Prefix  string
 	Postfix string
 
+	// DisableExpansion controls the expansion of properties on Get()
+	// and the check for circular references on Set(). When set to
+	// true Properties behaves like a simple key/value store and does
+	// not check for circular references on Get() or on Set().
+	DisableExpansion bool
+
 	// Stores the key/value pairs
 	m map[string]string
 
@@ -73,6 +79,9 @@
 // Otherwise, ok is false.
 func (p *Properties) Get(key string) (value string, ok bool) {
 	v, ok := p.m[key]
+	if p.DisableExpansion {
+		return v, ok
+	}
 	if !ok {
 		return "", false
 	}
@@ -470,6 +479,13 @@
 		return "", false, nil
 	}
 
+	// if expansion is disabled we allow circular references
+	if p.DisableExpansion {
+		prev, ok = p.Get(key)
+		p.m[key] = value
+		return prev, ok, nil
+	}
+
 	// to check for a circular reference we temporarily need
 	// to set the new value. If there is an error then revert
 	// to the previous state. Only if all tests are successful
diff --git a/properties_test.go b/properties_test.go
index 36ff293..6ae0b42 100644
--- a/properties_test.go
+++ b/properties_test.go
@@ -442,6 +442,21 @@
 	}
 }
 
+func (s *TestSuite) TestDisableExpansion(c *C) {
+	input := "key=value\nkey2=${key}"
+	p, err := parse(input)
+	p.DisableExpansion = true
+	c.Assert(err, IsNil)
+	c.Assert(p.MustGet("key"), Equals, "value")
+	c.Assert(p.MustGet("key2"), Equals, "${key}")
+
+	// with expansion disabled we can introduce circular references
+	p.Set("keyA", "${keyB}")
+	p.Set("keyB", "${keyA}")
+	c.Assert(p.MustGet("keyA"), Equals, "${keyB}")
+	c.Assert(p.MustGet("keyB"), Equals, "${keyA}")
+}
+
 func (s *TestSuite) TestMustGet(c *C) {
 	input := "key = value\nkey2 = ghi"
 	p, err := parse(input)
