diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index 5394569a1c8934a9763d4955447cf05176254925..abc37fa5249291b29c0002c307830597d4a99cbb 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -575,7 +575,7 @@ allocate_request(struct fw_packet *p)
 	request->ack = p->ack;
 	request->length = length;
 	if (data)
-		memcpy(request->data, p->payload, length);
+		memcpy(request->data, data, length);
 
 	memcpy(request->request_header, p->header, sizeof p->header);