diff --git a/obj/NiNode.cpp b/obj/NiNode.cpp
index a62b59b126d5256df82d303b110f7c850b736244..947040a83426830815cdd8a3b99175b4390e2a5d 100644
--- a/obj/NiNode.cpp
+++ b/obj/NiNode.cpp
@@ -69,7 +69,7 @@ void NiNode::RemoveChild( Ref<NiAVObject> obj ) {
 }
 
 void NiNode::ClearChildren() {
-	for ( vector< NiAVObjectRef >::iterator it = children.begin(); it != children.end(); ) {
+	for ( vector< NiAVObjectRef >::iterator it = children.begin(); it != children.end(); ++it) {
 		(*it)->SetParent(NULL);
 	}
 	children.clear();
diff --git a/obj/NiObjectNET.cpp b/obj/NiObjectNET.cpp
index 7efe516f62fafe32b98417ca8ea55ce643ac6c3e..0a47411b2a92d952bf591f479b89cc9555c3d2f0 100644
--- a/obj/NiObjectNET.cpp
+++ b/obj/NiObjectNET.cpp
@@ -152,11 +152,11 @@ void NiObjectNET::RemoveController( Ref<NiTimeController> obj ) {
 	}
 }
 void NiObjectNET::ClearControllers() {
-	NiTimeControllerRef cont = controller;
-	while ( cont != NULL ) {
-		cont->SetTarget(NULL);
+	NiTimeControllerRef * cont = &controller;
+	while ( (*cont) != NULL ) {
+	   (*cont)->SetTarget(NULL);
+      (*cont) = (*cont)->GetNextController();
 	}
-	controller = NULL;
 }
 
 list< Ref<NiTimeController> > NiObjectNET::GetControllers() const {