diff --git a/index.js b/index.js
index <HASH>..<HASH> 100644
--- a/index.js
+++ b/index.js
@@ -37,6 +37,7 @@ var Factory = function (state, defaultArgs) {
       return Value(path, state);
     },
     onSet: function (path, value) {
+      path = path.slice();
       var key = path.pop();
       state = Value(path, state).set(key, value);
     },
Fix for path mutation sent to 'onSet' method

The path parameter is mutated when `pop()` is applied so if you try to use the same path object again in another set() call it will not work.