diff -urN libgphoto2-2.3.1/camlibs/ptp2/ptp-pack.c libgphoto2-2.3.1.new/camlibs/ptp2/ptp-pack.c --- libgphoto2-2.3.1/camlibs/ptp2/ptp-pack.c 2006-12-24 16:16:20.000000000 +0100 +++ libgphoto2-2.3.1.new/camlibs/ptp2/ptp-pack.c 2007-02-28 00:17:17.000000000 +0100 @@ -116,8 +116,17 @@ nconv = iconv (params->cd_ucs2_to_locale, &stringp, &convlen, &locp, &convmax); /* FIXME: handle size errors */ loclstr[PTP_MAXSTRLEN*3] = '\0'; - if (nconv == (size_t) -1) - return NULL; + if (nconv == (size_t) -1) { + int i; + /* try the old way, in case iconv is broken */ + for (i=0;i127) + loclstr[i] = '?'; + else + loclstr[i] = string[i]; + } + string[loclen] = 0; + } return strdup(loclstr); } return NULL;