diff --git a/nav2_dwb_controller/dwb_core/src/publisher.cpp b/nav2_dwb_controller/dwb_core/src/publisher.cpp
index 3e5e9b31f96319a088c29bff5c0f1dec0b5b1483..70adb22d8196b0b87d065943decab18430f21449 100644
--- a/nav2_dwb_controller/dwb_core/src/publisher.cpp
+++ b/nav2_dwb_controller/dwb_core/src/publisher.cpp
@@ -156,16 +156,13 @@ DWBPublisher::on_cleanup()
 void
 DWBPublisher::publishEvaluation(std::shared_ptr<dwb_msgs::msg::LocalPlanEvaluation> results)
 {
-  if (eval_pub_->get_subscription_count() < 1) {return;}
-
-  if (results == nullptr) {return;}
-
-  if (publish_evaluation_) {
-    auto msg = std::make_unique<dwb_msgs::msg::LocalPlanEvaluation>(*results);
-    eval_pub_->publish(std::move(msg));
+  if (results) {
+    if (publish_evaluation_ && eval_pub_->get_subscription_count() > 0) {
+      auto msg = std::make_unique<dwb_msgs::msg::LocalPlanEvaluation>(*results);
+      eval_pub_->publish(std::move(msg));
+    }
+    publishTrajectories(*results);
   }
-
-  publishTrajectories(*results);
 }
 
 void