diff --git a/requester/test/handler_test.cpp b/requester/test/handler_test.cpp
index 4ac7861..19afdd1 100644
--- a/requester/test/handler_test.cpp
+++ b/requester/test/handler_test.cpp
@@ -83,7 +83,7 @@
     EXPECT_EQ(instanceId, 0);
     auto rc = reqHandler.registerRequest(
         eid, instanceId, 0, 0, std::move(request),
-        std::move(std::bind_front(&HandlerTest::pldmResponseCallBack, this)));
+        std::bind_front(&HandlerTest::pldmResponseCallBack, this));
     EXPECT_EQ(rc, PLDM_SUCCESS);
 
     pldm::Response response(sizeof(pldm_msg_hdr) + sizeof(uint8_t));
@@ -104,7 +104,7 @@
     EXPECT_EQ(instanceId, 0);
     auto rc = reqHandler.registerRequest(
         eid, instanceId, 0, 0, std::move(request),
-        std::move(std::bind_front(&HandlerTest::pldmResponseCallBack, this)));
+        std::bind_front(&HandlerTest::pldmResponseCallBack, this));
     EXPECT_EQ(rc, PLDM_SUCCESS);
 
     // Waiting for 500ms so that the instance ID expiry callback is invoked
@@ -123,7 +123,7 @@
     EXPECT_EQ(instanceId, 0);
     auto rc = reqHandler.registerRequest(
         eid, instanceId, 0, 0, std::move(request),
-        std::move(std::bind_front(&HandlerTest::pldmResponseCallBack, this)));
+        std::bind_front(&HandlerTest::pldmResponseCallBack, this));
     EXPECT_EQ(rc, PLDM_SUCCESS);
 
     pldm::Request requestNxt{};
@@ -131,7 +131,7 @@
     EXPECT_EQ(instanceIdNxt, 1);
     rc = reqHandler.registerRequest(
         eid, instanceIdNxt, 0, 0, std::move(requestNxt),
-        std::move(std::bind_front(&HandlerTest::pldmResponseCallBack, this)));
+        std::bind_front(&HandlerTest::pldmResponseCallBack, this));
     EXPECT_EQ(rc, PLDM_SUCCESS);
 
     pldm::Response response(sizeof(pldm_msg_hdr) + sizeof(uint8_t));
