diff --git a/src/bin/dhcp4/dhcp4_hooks.dox b/src/bin/dhcp4/dhcp4_hooks.dox
index 30d4beb312..643b4735e0 100644
--- a/src/bin/dhcp4/dhcp4_hooks.dox
+++ b/src/bin/dhcp4/dhcp4_hooks.dox
@@ -204,6 +204,7 @@ packet processing. Hook points that are not specific to packet processing
- @b Arguments:
- name: @b response4, type: isc::dhcp::Pkt4Ptr, direction: in/out
+ - name: @b query4, type: isc::dhcp::Pkt4Ptr, direction: in
- @b Description: this callout is executed when server's response
is about to be sent back to the client. The sole argument "response4"
@@ -213,7 +214,10 @@ packet processing. Hook points that are not specific to packet processing
of the @c Pkt4 object can be modified at this time, except @c buffer_out_.
(This is scratch space used for constructing the packet after all
pkt4_send callouts are complete, so any changes to that field will
- be overwritten.)
+ be overwritten.)\n\n
+ The argument query4 contains a pointer to the corresponding query packet
+ (allowing to perform correlation between response and query). This object
+ cannot be modified.
- Next step action: if any callout installed on the "pkt4_send" hook
sets the next step action to SKIP, the server will not construct the raw
diff --git a/src/bin/dhcp4/dhcp4_srv.cc b/src/bin/dhcp4/dhcp4_srv.cc
index 76d3861871..e3efd7eece 100644
--- a/src/bin/dhcp4/dhcp4_srv.cc
+++ b/src/bin/dhcp4/dhcp4_srv.cc
@@ -697,6 +697,9 @@ Dhcpv4Srv::run() {
// Set our response
callout_handle->setArgument("response4", rsp);
+ // Also pass the corresponding query packet as argument
+ callout_handle->setArgument("query4", query);
+
// Call all installed callouts
HooksManager::callCallouts(hook_index_pkt4_send_,
*callout_handle);