Index: uspace/lib/usbhost/src/endpoint.c
===================================================================
--- uspace/lib/usbhost/src/endpoint.c	(revision 23b0fe8e5a14774779ca68b936cc950407e553b8)
+++ uspace/lib/usbhost/src/endpoint.c	(revision f9745198a340eebcba63d52957d602d9fbb50a9d)
@@ -53,6 +53,6 @@
 		instance->toggle = 0;
 		instance->active = false;
+		instance->destroy_hook = NULL;
 		instance->hc_data.data = NULL;
-		instance->hc_data.data_dtor = NULL;
 		instance->hc_data.toggle_get = NULL;
 		instance->hc_data.toggle_set = NULL;
@@ -69,6 +69,6 @@
 	assert(!instance->active);
 	if (instance->hc_data.data) {
-		assert(instance->hc_data.data_dtor);
-		instance->hc_data.data_dtor(instance->hc_data.data);
+		assert(instance->destroy_hook);
+		instance->destroy_hook(instance);
 	}
 	free(instance);
@@ -76,10 +76,10 @@
 /*----------------------------------------------------------------------------*/
 void endpoint_set_hc_data(endpoint_t *instance,
-    void *data, void (*data_dtor)(void *),
+    void *data, void (*destroy_hook)(endpoint_t *),
     int (*toggle_get)(void *), void (*toggle_set)(void *, int))
 {
 	assert(instance);
+	instance->destroy_hook = destroy_hook;
 	instance->hc_data.data = data;
-	instance->hc_data.data_dtor = data_dtor;
 	instance->hc_data.toggle_get = toggle_get;
 	instance->hc_data.toggle_set = toggle_set;
