diff --git a/nav2_rviz_plugins/src/nav2_panel.cpp b/nav2_rviz_plugins/src/nav2_panel.cpp
index 0deffec59490a3d263896272352ebe24bb60f3c9..1eb7ee57a62d7268b9ba0ea8e7f75985fb35a8ea 100644
--- a/nav2_rviz_plugins/src/nav2_panel.cpp
+++ b/nav2_rviz_plugins/src/nav2_panel.cpp
@@ -159,10 +159,10 @@ Nav2Panel::Nav2Panel(QWidget * parent)
   state_machine_.addState(resumed_);
 
   state_machine_.setInitialState(pre_initial_);
-  state_machine_.start();
 
   // delay starting initial thread until state machine has started or a race occurs
   QObject::connect(&state_machine_, SIGNAL(started()), this, SLOT(startThread()));
+  state_machine_.start();
 
   // Lay out the items in the panel
   QVBoxLayout * main_layout = new QVBoxLayout;