diff --git a/include/iri_base_bt_client/iri_base_bt_client.h b/include/iri_base_bt_client/iri_base_bt_client.h
index 7bf61ade75eedb3928e209ce5d42c58e0bab642e..d626e76dea5d2129b2bd9d0771398883b5dc2035 100644
--- a/include/iri_base_bt_client/iri_base_bt_client.h
+++ b/include/iri_base_bt_client/iri_base_bt_client.h
@@ -701,6 +701,8 @@ void *IriBaseBTClient<ConfigClass>::mainThread(void *param)
       {
         iriNode->user_loop();
         iriNode->status=iriNode->tree.tickRoot();
+        if(iriNode->status==BT::NodeStatus::FAILURE)
+          iriNode->tree.haltTree();
         ROS_DEBUG_STREAM("Tree status: " << iriNode->status);          
       } 
       catch(BT::LogicError &e)