Index: uspace/lib/usbvirt/stdreq.c
===================================================================
--- uspace/lib/usbvirt/stdreq.c	(revision ca07cd38cc4c8d1bf28bd26cf1e06a9df555ce24)
+++ uspace/lib/usbvirt/stdreq.c	(revision 23cb44b4470f76dd953fedf15da7a42f59fac14d)
@@ -189,5 +189,5 @@
 	HANDLE_REQUEST(request, data, USB_DEVREQ_GET_DESCRIPTOR,
 	    device, on_get_descriptor,
-	    handle_get_descriptor(device, request->value_low, request->value_high,
+	    handle_get_descriptor(device, request->value_high, request->value_low,
 	        request->index, request->length));
 	
Index: uspace/lib/usbvirt/transaction.c
===================================================================
--- uspace/lib/usbvirt/transaction.c	(revision ca07cd38cc4c8d1bf28bd26cf1e06a9df555ce24)
+++ uspace/lib/usbvirt/transaction.c	(revision 23cb44b4470f76dd953fedf15da7a42f59fac14d)
@@ -35,5 +35,4 @@
 #include <errno.h>
 #include <stdlib.h>
-#include <stdio.h>
 #include <mem.h>
 
@@ -79,5 +78,6 @@
 	transfer->direction = setup_transaction_direction(device, endpoint,
 	    buffer, size);
-	transfer->request = buffer;
+	transfer->request = malloc(size);
+	memcpy(transfer->request, buffer, size);
 	transfer->request_size = size;
 	transfer->data = NULL;
