diff --git a/examples/listdevs.c b/examples/listdevs.c
index e3d7ef0..f02c795 100644
--- a/examples/listdevs.c
+++ b/examples/listdevs.c
@@ -24,6 +24,9 @@
 static void print_devs(libusb_device **devs)
 {
 	libusb_device *dev;
+	uint8_t port_path[10];
+	uint8_t port_path_len = 10;
+	int npaths, j;
 	int i = 0;
 
 	while ((dev = devs[i++]) != NULL) {
@@ -34,9 +37,18 @@ static void print_devs(libusb_device **devs)
 			return;
 		}
 
-		printf("%04x:%04x (bus %d, device %d)\n",
+		npaths = libusb_get_port_path(NULL, dev, port_path, port_path_len);
+		printf("%04x:%04x (bus %d, device %d port=%d) (port_path[%d]={",
 			desc.idVendor, desc.idProduct,
-			libusb_get_bus_number(dev), libusb_get_device_address(dev));
+			libusb_get_bus_number(dev), libusb_get_device_address(dev),
+			libusb_get_port_number(dev),
+			npaths);
+
+		for (j=0; j<npaths; j++) {
+			printf("%u ", port_path[j]);
+		}
+
+		printf("}\n");
 	}
 }
 
