diff --git a/index.js b/index.js
index <HASH>..<HASH> 100644
--- a/index.js
+++ b/index.js
@@ -153,7 +153,8 @@ Keeper.prototype._doPut = function (key, value) {
     .then(function (exists) {
       if (exists) {
         debug('put aborted, value exists', key)
-        throw new Error('value for this key already exists in Keeper')
+        return exists
+        // throw new Error('value for this key already exists in Keeper')
       }
 
       return self._save(key, value)
diff --git a/test/index.js b/test/index.js
index <HASH>..<HASH> 100644
--- a/test/index.js
+++ b/test/index.js
@@ -25,6 +25,22 @@ test('test invalid keys', function (t) {
     .done()
 })
 
+test('put same data twice', function (t) {
+  t.plan(1)
+
+  var keeper = new Keeper({
+    storage: testDir
+  })
+
+  put()
+    .then(put)
+    .done(t.pass)
+
+  function put () {
+    return keeper.put('64fe16cc8a0c61c06bc403e02f515ce5614a35f1', new Buffer('1'))
+  }
+})
+
 test('put, get', function (t) {
   var keeper = new Keeper({
     storage: testDir
don't throw err on put for existing key/val