--- ./drivers/usb-dist/core/usb.c	Thu May  2 07:52:18 2002
+++ ./drivers/usb/core/usb.c	Thu May  9 14:07:37 2002
@@ -980,14 +980,15 @@
 {
 	if (in_interrupt ())
 		BUG ();
+	dev->bus->op->deallocate (dev);
 	if (!atomic_dec_and_test (&dev->refcnt)) {
 		/* MUST go to zero here, else someone's hanging on to
 		 * a device that's supposed to have been cleaned up!!
 		 */
+		dbg ("refcount %d != 0", atomic_read (&dev->refcnt));
 		BUG ();
 	}
 
-	dev->bus->op->deallocate (dev);
 	usb_destroy_configuration (dev);
 	usb_bus_put (dev->bus);
 	kfree (dev);
@@ -2798,6 +2799,5 @@
 EXPORT_SYMBOL(usb_set_configuration);
 EXPORT_SYMBOL(usb_set_interface);
 
-EXPORT_SYMBOL(usb_make_path);
 EXPORT_SYMBOL(usb_devfs_handle);
 MODULE_LICENSE("GPL");
