diff --git a/pldmd.cpp b/pldmd.cpp
index 7072312..e966164 100644
--- a/pldmd.cpp
+++ b/pldmd.cpp
@@ -71,8 +71,6 @@
             }
             response.insert(response.end(), completion_code);
         }
-        response.insert(response.begin(), type);
-        response.insert(response.begin(), eid);
     }
     return response;
 }
@@ -133,6 +131,15 @@
     pldm::responder::base::registerHandlers();
     pldm::responder::bios::registerHandlers();
 
+    // Outgoing message.
+    struct iovec iov[2]{};
+
+    // This structure contains the parameter information for the response
+    // message.
+    struct msghdr msg
+    {
+    };
+
 #ifdef OEM_IBM
     pldm::responder::oem_ibm::registerHandlers();
 #endif
@@ -218,13 +225,20 @@
                     auto response = processRxMsg(requestMsg);
                     if (!response.empty())
                     {
-                        if (verbose)
-                        {
-                            log<level::INFO>("Sending Msg ");
-                            printBuffer(response);
-                        }
-                        result = sendto(socketFd(), response.data(),
-                                        response.size(), 0, nullptr, 0);
+#ifdef VERBOSE
+                        log<level::INFO>("Sending Msg ");
+                        printBuffer(response);
+#endif
+                        iov[0].iov_base = &requestMsg[0];
+                        iov[0].iov_len =
+                            sizeof(requestMsg[0]) + sizeof(requestMsg[1]);
+                        iov[1].iov_base = response.data();
+                        iov[1].iov_len = response.size();
+
+                        msg.msg_iov = iov;
+                        msg.msg_iovlen = sizeof(iov) / sizeof(iov[0]);
+
+                        result = sendmsg(socketFd(), &msg, 0);
                         if (-1 == result)
                         {
                             returnCode = -errno;
