diff --git a/lib/compoundify.js b/lib/compoundify.js
index <HASH>..<HASH> 100644
--- a/lib/compoundify.js
+++ b/lib/compoundify.js
@@ -52,10 +52,11 @@ function compoundify(SuperConstructor) {
     if (arguments.length < 2) {
       value = {};
     }
+    u = SuperConstructor.prototype.addNode.call(this, u, value);
     this._parents[u] = null;
     this._children[u] = new Set();
     this._children[null].add(u);
-    return SuperConstructor.prototype.addNode.call(this, u, value);
+    return u;
   };
 
   Constructor.prototype.delNode = function(u) {
diff --git a/test/abstract-compoundify-test.js b/test/abstract-compoundify-test.js
index <HASH>..<HASH> 100644
--- a/test/abstract-compoundify-test.js
+++ b/test/abstract-compoundify-test.js
@@ -114,6 +114,12 @@ module.exports = function(name, Constructor, superName, SuperConstructor) {
       g.delNode("sg1");
       assert.throws(function() { g.children("sg1"); });
     });
+
+    it("can remove a node created with a automatically assigned id", function() {
+      var id = g.addNode();
+      g.delNode(id);
+      assert.lengthOf(g.nodes(), 0);
+    });
   });
 
   describe("from" + superName, function() {
Fix bug where auto-assigned id was not used for parent/children properties