--- usb.c.orig	Tue Mar 13 14:46:18 2001
+++ usb.c	Sat Apr 16 23:30:49 2011
@@ -84,11 +84,29 @@ int USB_camera_init(struct usb_device **camera_dev)
 						printf("Canon S20 found\n");
 					return USB_INIT_S20;
 					break;
+				case PRODUCT_ID_S40:
+					*camera_dev = dev;
+					if (opt_debug)
+						printf("Canon S40 found\n");
+					return USB_INIT_S40;
+					break;
+				case PRODUCT_ID_A70:
+					*camera_dev = dev;
+					if (opt_debug)
+						printf("Canon A70 found\n");
+					return USB_INIT_A70;
+					break;
 				case PRODUCT_ID_S100_EU:
 				case PRODUCT_ID_S100_US:
 					*camera_dev = dev;
 					if (opt_debug)
 						printf("Canon S100 found\n");
+					return USB_INIT_S100;
+					break;
+				case PRODUCT_ID_S200:
+					*camera_dev = dev;
+					if (opt_debug)
+						printf("Canon S200 found\n");
 					return USB_INIT_S100;
 					break;
 				case PRODUCT_ID_G1:
