diff --git a/library/CM/View/Abstract.js b/library/CM/View/Abstract.js
index <HASH>..<HASH> 100644
--- a/library/CM/View/Abstract.js
+++ b/library/CM/View/Abstract.js
@@ -153,10 +153,9 @@ var CM_View_Abstract = Backbone.View.extend({
 	 * @param {Boolean} [skipTriggerRemove]
 	 */
 	remove: function(skipDomRemoval, skipTriggerRemove) {
-		this.trigger('destruct');
-		if (!skipTriggerRemove) {
-			this.trigger('remove');
-		}
+		_.each(_.clone(this.getChildren()), function(child) {
+			child.remove();
+		});
 
 		if (this.getParent()) {
 			var siblings = this.getParent().getChildren();
@@ -167,12 +166,13 @@ var CM_View_Abstract = Backbone.View.extend({
 			}
 		}
 
-		_.each(_.clone(this.getChildren()), function(child) {
-			child.remove();
-		});
-
 		delete cm.views[this.getAutoId()];
 
+		this.trigger('destruct');
+		if (!skipTriggerRemove) {
+			this.trigger('remove');
+		}
+
 		if (!skipDomRemoval) {
 			this.$el.remove();
 		}
Move destruct/remove triggers after removal of children views