diff --git a/include/ipmid/message.hpp b/include/ipmid/message.hpp
index c828e3c..0da1779 100644
--- a/include/ipmid/message.hpp
+++ b/include/ipmid/message.hpp
@@ -42,10 +42,10 @@
     Context& operator=(Context&&) = delete;
 
     Context(std::shared_ptr<sdbusplus::asio::connection> bus, NetFn netFn,
-            Cmd cmd, int channel, int userId, uint32_t sessionId,
+            uint8_t lun, Cmd cmd, int channel, int userId, uint32_t sessionId,
             Privilege priv, int rqSA, boost::asio::yield_context& yield) :
         bus(bus),
-        netFn(netFn), cmd(cmd), channel(channel), userId(userId),
+        netFn(netFn), lun(lun), cmd(cmd), channel(channel), userId(userId),
         sessionId(sessionId), priv(priv), rqSA(rqSA), yield(yield)
     {
     }
@@ -53,6 +53,7 @@
     std::shared_ptr<sdbusplus::asio::connection> bus;
     // normal IPMI context (what call is this, from whence it came...)
     NetFn netFn;
+    uint8_t lun;
     Cmd cmd;
     int channel;
     int userId;
diff --git a/ipmid-new.cpp b/ipmid-new.cpp
index abd0a10..c3eb451 100644
--- a/ipmid-new.cpp
+++ b/ipmid-new.cpp
@@ -542,15 +542,16 @@
     }
     // check to see if the requested priv/username is valid
     log<level::DEBUG>("Set up ipmi context", entry("SENDER=%s", sender.c_str()),
-                      entry("NETFN=0x%X", netFn), entry("CMD=0x%X", cmd),
-                      entry("CHANNEL=%u", channel), entry("USERID=%u", userId),
+                      entry("NETFN=0x%X", netFn), entry("LUN=0x%X", lun),
+                      entry("CMD=0x%X", cmd), entry("CHANNEL=%u", channel),
+                      entry("USERID=%u", userId),
                       entry("SESSIONID=0x%X", sessionId),
                       entry("PRIVILEGE=%u", static_cast<uint8_t>(privilege)),
                       entry("RQSA=%x", rqSA));
 
-    auto ctx =
-        std::make_shared<ipmi::Context>(getSdBus(), netFn, cmd, channel, userId,
-                                        sessionId, privilege, rqSA, yield);
+    auto ctx = std::make_shared<ipmi::Context>(getSdBus(), netFn, lun, cmd,
+                                               channel, userId, sessionId,
+                                               privilege, rqSA, yield);
     auto request = std::make_shared<ipmi::message::Request>(
         ctx, std::forward<std::vector<uint8_t>>(data));
     message::Response::ptr response = executeIpmiCommand(request);
@@ -763,7 +764,7 @@
         m.read(seq, netFn, lun, cmd, data);
         std::shared_ptr<sdbusplus::asio::connection> bus = getSdBus();
         auto ctx = std::make_shared<ipmi::Context>(
-            bus, netFn, cmd, 0, 0, 0, ipmi::Privilege::Admin, 0, yield);
+            bus, netFn, lun, cmd, 0, 0, 0, ipmi::Privilege::Admin, 0, yield);
         auto request = std::make_shared<ipmi::message::Request>(
             ctx, std::forward<std::vector<uint8_t>>(data));
         ipmi::message::Response::ptr response =
