diff --git a/gphoto2-storage.patch b/gphoto2-storage.patch
index 6c64914..7d8fe4b 100644
--- a/gphoto2-storage.patch
+++ b/gphoto2-storage.patch
@@ -1,7 +1,7 @@
-diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphoto2-2.4.1/packaging/generic/print-camera-list.c
---- libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage 2008-03-24 12:47:00.000000000 +0100
-+++ libgphoto2-2.4.1/packaging/generic/print-camera-list.c 2008-06-02 10:44:29.000000000 +0200
-@@ -793,6 +793,8 @@ fdi_begin_func (const func_params_t *par
+diff -up libgphoto2-2.4.7/packaging/generic/print-camera-list.c.storage libgphoto2-2.4.7/packaging/generic/print-camera-list.c
+--- libgphoto2-2.4.7/packaging/generic/print-camera-list.c.storage 2009-08-11 17:11:27.000000000 +0200
++++ libgphoto2-2.4.7/packaging/generic/print-camera-list.c 2009-08-19 15:44:41.000000000 +0200
+@@ -819,6 +819,8 @@ fdi_begin_func (const func_params_t *par
printf("\n");
printf(" \n");
printf(" \n");
@@ -10,7 +10,7 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
return 0;
}
-@@ -832,52 +834,52 @@ fdi_camera_func (const func_params_t *pa
+@@ -858,62 +860,62 @@ fdi_camera_func (const func_params_t *pa
return 0;
}
if (a->usb_vendor) { /* usb product id might be 0! */
@@ -18,13 +18,21 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
- printf(" \n", a->usb_product);
+ printf(" \n", a->usb_vendor);
+ printf(" \n", a->usb_product);
+ if (a->usb_vendor == 0x05ac) { /* Apple iPhone, PTP user. */
+- printf(" \n");
+- printf(" \n");
+- printf(" \n");
++ printf(" \n");
++ printf(" \n");
++ printf(" \n");
+ }
if (a->device_type & GP_DEVICE_AUDIO_PLAYER) {
- printf(" portable_audio_player\n");
-- printf(" portable_audio_player\n");
+- printf(" portable_audio_player\n");
- printf(" user\n");
- printf(" mtp\n");
+ printf(" portable_audio_player\n");
-+ printf(" portable_audio_player\n");
++ printf(" portable_audio_player\n");
+ printf(" user\n");
+ printf(" mtp\n");
@@ -33,10 +41,10 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
+ printf(" audio/mpeg\n");
} else {
- printf(" camera\n");
-- printf(" camera\n");
+- printf(" camera\n");
+ printf(" camera\n");
-+ printf(" camera\n");
-
++ printf(" camera\n");
+
/* HACK alert ... but the HAL / gnome-volume-manager guys want that */
if (NULL!=strstr(a->library,"ptp"))
- printf(" ptp\n");
@@ -50,6 +58,12 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
- printf(" true\n");
+ printf(" %s\n", model);
+ printf(" true\n");
+ if (a->usb_vendor == 0x05ac) { /* Apple iPhone */
++ printf(" \n");
+ printf(" \n");
+ printf(" \n");
+- printf(" \n");
+ }
+ printf(" \n");
printf(" \n");
- printf(" \n");
@@ -59,12 +73,12 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
- printf(" \n", a->usb_subclass);
- printf(" \n", a->usb_protocol);
- printf(" camera\n");
-- printf(" camera\n");
+- printf(" camera\n");
+ printf(" \n", a->usb_class);
+ printf(" \n", a->usb_subclass);
+ printf(" \n", a->usb_protocol);
+ printf(" camera\n");
-+ printf(" camera\n");
++ printf(" camera\n");
if (a->usb_class == 6) {
- printf(" ptp\n");
+ printf(" ptp\n");
@@ -88,7 +102,7 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
}
} /* camera has USB connection */
return 0;
-@@ -886,6 +888,7 @@ fdi_camera_func (const func_params_t *pa
+@@ -922,6 +924,7 @@ fdi_camera_func (const func_params_t *pa
static int
fdi_end_func (const func_params_t *params, void *data)
{
@@ -96,7 +110,7 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
printf(" \n");
printf(" \n");
printf("\n");
-@@ -912,6 +915,8 @@ fdi_device_begin_func (const func_params
+@@ -948,6 +951,8 @@ fdi_device_begin_func (const func_params
printf("\n");
printf(" \n");
printf(" \n");
@@ -105,7 +119,7 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
return 0;
}
-@@ -955,28 +960,28 @@ fdi_device_camera_func (const func_param
+@@ -991,28 +996,28 @@ fdi_device_camera_func (const func_param
/* do not set category. We don't really know what this device really is.
* But we do now that is capable of being a camera, so add to capabilities
*/
@@ -144,7 +158,7 @@ diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphot
}
#endif
}
-@@ -986,6 +991,7 @@ fdi_device_camera_func (const func_param
+@@ -1022,6 +1027,7 @@ fdi_device_camera_func (const func_param
static int
fdi_device_end_func (const func_params_t *params, void *data)
{