diff --git a/src/biosconfigcommands.cpp b/src/biosconfigcommands.cpp
index 96d0c4e..1b08129 100644
--- a/src/biosconfigcommands.cpp
+++ b/src/biosconfigcommands.cpp
@@ -20,8 +20,8 @@
 
 #include <biosconfigcommands.hpp>
 #include <boost/crc.hpp>
-#include <boost/process/child.hpp>
-#include <boost/process/io.hpp>
+#include <boost/process/v1/child.hpp>
+#include <boost/process/v1/io.hpp>
 #include <ipmid/api.hpp>
 #include <ipmid/message.hpp>
 #include <ipmid/message/types.hpp>
@@ -602,8 +602,9 @@
 template <typename... ArgTypes>
 static int generateBIOSXMLFile(const char* path, ArgTypes&&... tArgs)
 {
-    boost::process::child execProg(path, const_cast<char*>(tArgs)...,
-                                   boost::process::std_out > biosXMLFilePath);
+    boost::process::v1::child execProg(
+        path, const_cast<char*>(tArgs)...,
+        boost::process::v1::std_out > biosXMLFilePath);
     execProg.wait();
     return execProg.exit_code();
 }
diff --git a/src/firmware-update.cpp b/src/firmware-update.cpp
index 8bc2fdc..5b47bd2 100644
--- a/src/firmware-update.cpp
+++ b/src/firmware-update.cpp
@@ -10,7 +10,7 @@
 #include <appcommands.hpp>
 #include <boost/algorithm/string.hpp>
 #include <boost/container/flat_map.hpp>
-#include <boost/process/child.hpp>
+#include <boost/process/v1/child.hpp>
 #include <boost/uuid/random_generator.hpp>
 #include <boost/uuid/uuid_io.hpp>
 #include <commandutils.hpp>
@@ -712,7 +712,7 @@
 template <typename... ArgTypes>
 static int executeCmd(const char* path, ArgTypes&&... tArgs)
 {
-    boost::process::child execProg(path, const_cast<char*>(tArgs)...);
+    boost::process::v1::child execProg(path, const_cast<char*>(tArgs)...);
     execProg.wait();
     return execProg.exit_code();
 }
diff --git a/src/oemcommands.cpp b/src/oemcommands.cpp
index 2e81bd4..ea5eb12 100644
--- a/src/oemcommands.cpp
+++ b/src/oemcommands.cpp
@@ -23,8 +23,8 @@
 
 #include <appcommands.hpp>
 #include <boost/container/flat_map.hpp>
-#include <boost/process/child.hpp>
-#include <boost/process/io.hpp>
+#include <boost/process/v1/child.hpp>
+#include <boost/process/v1/io.hpp>
 #include <com/intel/Control/OCOTShutdownPolicy/server.hpp>
 #include <commandutils.hpp>
 #include <gpiod.hpp>
@@ -1386,7 +1386,7 @@
 
 static uint8_t executeCmd(const char* path)
 {
-    boost::process::child execProg(path);
+    boost::process::v1::child execProg(path);
     execProg.wait();
 
     int retCode = execProg.exit_code();
@@ -1582,11 +1582,12 @@
 
             *dataLen = 0;
 
-            boost::process::ipstream is;
+            boost::process::v1::ipstream is;
             std::vector<std::string> data;
             std::string line;
-            boost::process::child c1(fwGetEnvCmd, "-n", fwHostSerailCfgEnvName,
-                                     boost::process::std_out > is);
+            boost::process::v1::child c1(fwGetEnvCmd, "-n",
+                                         fwHostSerailCfgEnvName,
+                                         boost::process::v1::std_out > is);
 
             while (c1.running() && std::getline(is, line) && !line.empty())
             {
@@ -1657,8 +1658,8 @@
                 return ipmi::ccInvalidFieldRequest;
             }
 
-            boost::process::child c1(fwSetEnvCmd, fwHostSerailCfgEnvName,
-                                     std::to_string(req->parameter));
+            boost::process::v1::child c1(fwSetEnvCmd, fwHostSerailCfgEnvName,
+                                         std::to_string(req->parameter));
 
             c1.wait();
             if (c1.exit_code())
