Index: convert.cpp =================================================================== --- convert.cpp (revision 2002) +++ convert.cpp (working copy) @@ -508,6 +508,7 @@ return; } // Todo: Convert to UTF-8 if necessary + (*xmpData_)[to] = cv->comment(); if (erase_) exifData_->erase(pos); } @@ -1325,7 +1326,7 @@ std::string outstr; EXV_ICONV_CONST char *inptr = const_cast(str.c_str()); size_t inbytesleft = str.length(); - int outbytesProduced = 0; + while (inbytesleft) { char outbuf[100]; char *outptr = outbuf; @@ -1335,7 +1336,8 @@ &inbytesleft, &outptr, &outbytesleft); - outbytesProduced += sizeof(outbuf) - 1 - outbytesleft; + + int outbytesProduced = sizeof(outbuf) - 1 - outbytesleft; if (rc == size_t(-1) && errno != E2BIG) { #ifndef SUPPRESS_WARNINGS std::cerr << "Warning: iconv: "