diff --git a/src/templater.js b/src/templater.js
index <HASH>..<HASH> 100644
--- a/src/templater.js
+++ b/src/templater.js
@@ -69,7 +69,9 @@ var Templater = function(list) {
     return true;
   };
   this.remove = function(item) {
-    list.list.removeChild(item.elm);
+    if (item.elm.parentNode === list.list) {
+      list.list.removeChild(item.elm);
+    }
   };
   this.show = function(item) {
     templater.create(item);
diff --git a/test/test.add-get-remove.js b/test/test.add-get-remove.js
index <HASH>..<HASH> 100644
--- a/test/test.add-get-remove.js
+++ b/test/test.add-get-remove.js
@@ -92,6 +92,14 @@ describe('Add, get, remove', function() {
       expect(list.items.length).to.equal(1);
     });
 
+    it('should avoid node not found error', function() {
+      var item = list.get('name', 'Jonny')[0];
+      list.list.removeChild(item.elm);
+      var count = list.remove('name', 'Jonny');
+      expect(count).to.be.equal(1);
+      expect(list.items.length).to.equal(0);
+    });
+
     it('should remove eight items', function() {
       list.add({ name: 'Jonny' });
       list.add({ name: 'Jonny' });
Avoid node not found error when trying to delete already removed dom elements