diff -up cdrkit-1.1.8/wodim/wodim.c.werror cdrkit-1.1.8/wodim/wodim.c
--- cdrkit-1.1.8/wodim/wodim.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/wodim/wodim.c	2008-05-27 15:36:22.000000000 +0200
@@ -4089,7 +4089,7 @@ audioread(SCSI *usalp, cdr_t *dp, int fl
 
 	read_scsi(usalp, buf, 1000, 1);
 	printf("XXX:\n");
-	write(1, buf, 512); /* FIXME: handle return value */
+	do{int ret;ret=write(1, buf, 512);}while(0); /* FIXME: handle return value */
 	unload_media(usalp, dp, flags);
 	comexit(0);
 #endif
diff -up cdrkit-1.1.8/wodim/isosize.c.werror cdrkit-1.1.8/wodim/isosize.c
--- cdrkit-1.1.8/wodim/isosize.c.werror	2008-05-27 15:41:36.000000000 +0200
+++ cdrkit-1.1.8/wodim/isosize.c	2008-05-27 15:42:12.000000000 +0200
@@ -69,7 +69,7 @@ isosize(int f)
 	vp = (struct iso9660_pr_voldesc *) &vd;
 
 	do {
-		read(f, &vd, sizeof (vd)); /* FIXME: check return value */
+		do{int ret;ret=read(f, &vd, sizeof (vd));}while(0); /* FIXME: check return value */
 		if (GET_UBYTE(vd.vd_type) == VD_PRIMARY)
 			break;
 
diff -up cdrkit-1.1.8/icedax/toc.c.werror cdrkit-1.1.8/icedax/toc.c
--- cdrkit-1.1.8/icedax/toc.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/icedax/toc.c	2008-05-27 15:41:11.000000000 +0200
@@ -1071,7 +1071,7 @@ static int handle_userchoice(char *p, un
 	/* get user response. */
 	do {
 		fprintf(stderr, "please choose one (0-%u): ", nr);
-		scanf("%u", &user_choice); /* FIXME: check return value */
+		do{int ret;ret=scanf("%u", &user_choice);}while(0); /* FIXME: check return value */
 	} while (user_choice > nr);
 
 	if (user_choice == nr)
diff -up cdrkit-1.1.8/genisoimage/diag/dump.c.werror cdrkit-1.1.8/genisoimage/diag/dump.c
--- cdrkit-1.1.8/genisoimage/diag/dump.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/genisoimage/diag/dump.c	2008-05-27 15:34:03.000000000 +0200
@@ -368,7 +368,7 @@ main(int argc, char *argv[])
 	do {
 		if (file_addr < (off_t)0) file_addr = (off_t)0;
 		showblock(1);
-		read(STDIN_FILENO, &c, 1); /* FIXME: check return value */
+		do{int ret;ret=read(STDIN_FILENO, &c, 1);}while(0); /* FIXME: check return value */
 		if (c == 'a')
 			file_addr -= PAGE;
 		if (c == 'b')
@@ -378,11 +378,11 @@ main(int argc, char *argv[])
 			printf("Enter new starting block (in hex):");
 			if (sizeof (file_addr) > sizeof (long)) {
 				Llong	ll;
-				scanf("%llx", &ll); /* FIXME: check return value */
+				do{int ret;ret=scanf("%llx", &ll);}while(0); /* FIXME: check return value */
 				file_addr = (off_t)ll;
 			} else {
 				long	l;
-				scanf("%lx", &l); /* FIXME: check return value */
+				do{int ret;ret=scanf("%lx", &l);}while(0); /* FIXME: check return value */
 				file_addr = (off_t)l;
 			}
 			file_addr = file_addr << 11;
@@ -392,7 +392,7 @@ main(int argc, char *argv[])
 		if (c == 'f') {
 			crsr2(20, 1);
 			printf("Enter new search string:");
-			fgets((char *)search, sizeof (search), stdin); /* FIXME: check return value */
+			do{char *ret;ret=fgets((char *)search, sizeof (search), stdin);}while(0); /* FIXME: check return value */
 			while (search[strlen((char *)search)-1] == '\n')
 				search[strlen((char *)search)-1] = 0;
 			crsr2(20, 1);
diff -up cdrkit-1.1.8/genisoimage/diag/isoinfo.c.werror cdrkit-1.1.8/genisoimage/diag/isoinfo.c
--- cdrkit-1.1.8/genisoimage/diag/isoinfo.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/genisoimage/diag/isoinfo.c	2008-05-27 15:34:03.000000000 +0200
@@ -651,7 +651,7 @@ extract_file(struct iso_directory_record
 #endif
 		len -= tlen;
 		extent++;
-		write(STDOUT_FILENO, buff, tlen); /* FIXME: check return value */
+		do{int ret;ret=write(STDOUT_FILENO, buff, tlen);}while(0); /* FIXME: check return value */
 	}
 }
 
diff -up cdrkit-1.1.8/genisoimage/diag/isodump.c.werror cdrkit-1.1.8/genisoimage/diag/isodump.c
--- cdrkit-1.1.8/genisoimage/diag/isodump.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/genisoimage/diag/isodump.c	2008-05-27 15:34:03.000000000 +0200
@@ -655,7 +655,7 @@ main(int argc, char *argv[])
 		if (file_addr < 0)
 			file_addr = (off_t)0;
 		showblock(1);
-		read(STDIN_FILENO, &c, 1); /* FIXME: check return value */
+		do{int ret;ret=read(STDIN_FILENO, &c, 1);}while(0); /* FIXME: check return value */
 		if (c == 'a')
 			file_addr -= blocksize;
 		if (c == 'b')
@@ -665,11 +665,11 @@ main(int argc, char *argv[])
 			printf("Enter new starting block (in hex):");
 			if (sizeof (file_addr) > sizeof (long)) {
 				Llong	ll;
-				scanf("%llx", &ll); /* FIXME: check return value */
+				do{int ret;ret=scanf("%llx", &ll);}while(0); /* FIXME: check return value */
 				file_addr = (off_t)ll;
 			} else {
 				long	l;
-				scanf("%lx", &l); /* FIXME: check return value */
+				do{int ret;ret=scanf("%lx", &l);}while(0); /* FIXME: check return value */
 				file_addr = (off_t)l;
 			}
 			file_addr = file_addr * blocksize;
@@ -679,7 +679,7 @@ main(int argc, char *argv[])
 		if (c == 'f') {
 			crsr2(20, 1);
 			printf("Enter new search string:");
-			fgets((char *)search, sizeof (search), stdin); /* FIXME: check return value */
+			do{char *ret;ret=fgets((char *)search, sizeof (search), stdin);}while(0); /* FIXME: check return value */
 			while (search[strlen((char *)search)-1] == '\n')
 				search[strlen((char *)search)-1] = 0;
 			crsr2(20, 1);
diff -up cdrkit-1.1.8/genisoimage/diag/isovfy.c.werror cdrkit-1.1.8/genisoimage/diag/isovfy.c
--- cdrkit-1.1.8/genisoimage/diag/isovfy.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/genisoimage/diag/isovfy.c	2008-05-27 15:34:03.000000000 +0200
@@ -591,11 +591,11 @@ check_path_tables(int typel_extent, int 
 	readsecs(typel_extent * blocksize / 2048, typel, ISO_BLOCKS(path_table_size));
 #else
 	lseek(fileno(infile), (off_t)((off_t)typel_extent) * blocksize, SEEK_SET);
-	read(fileno(infile), typel, path_table_size); /* FIXME: check return value */
+	do{int ret;ret=read(fileno(infile), typel, path_table_size);}while(0); /* FIXME: check return value */
 #endif
 	typem = (char *) malloc(path_table_size);
 	lseek(fileno(infile), (off_t)((off_t)typem_extent) * blocksize, SEEK_SET);
-	read(fileno(infile), typem, path_table_size); /* FIXME: check return value */
+	do{int ret;ret=read(fileno(infile), typem, path_table_size);}while(0); /* FIXME: check return value */
 
 	j = path_table_size;
 	pnt = typel;
diff -up cdrkit-1.1.8/genisoimage/jte.c.werror cdrkit-1.1.8/genisoimage/jte.c
--- cdrkit-1.1.8/genisoimage/jte.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/genisoimage/jte.c	2008-05-27 15:34:03.000000000 +0200
@@ -36,6 +36,8 @@
 #include "vms.h"
 #endif
 
+#include "md5.h"
+
 /* Different types used in building our state list below */
 #define JTET_FILE_MATCH 1
 #define JTET_NOMATCH    2
@@ -643,7 +645,7 @@ static void flush_bz2_chunk(void *buffer
 
     err = BZ2_bzCompressInit(&c_stream, 9, 0, 0);
     comp_buf = malloc(2 * size); /* Worst case */
-    c_stream.next_out = comp_buf;
+    c_stream.next_out = (char *)comp_buf;
     c_stream.avail_out = 2 * size;
     c_stream.next_in = buffer;
     c_stream.avail_in = size;
@@ -691,7 +693,7 @@ static void write_compressed_chunk(unsig
 		if (!uncomp_buf)
 		{
 #ifdef	USE_LIBSCHILY
-            comerr("failed to allocate %d bytes for template compression buffer\n", uncomp_size);
+            comerr("failed to allocate %d bytes for template compression buffer\n", (int)uncomp_size);
 #else
             fprintf(stderr, "failed to allocate %d bytes for template compression buffer\n", uncomp_size);
             exit(1);
@@ -1019,8 +1021,8 @@ void write_jt_match_record(char *filenam
 #endif
 		}
         if (first_block)
-            rsync64_sum = rsync64(buf, MIN_JIGDO_FILE_SIZE);
-        checksum_update(iso_context, buf, use);
+            rsync64_sum = rsync64((unsigned char *)buf, MIN_JIGDO_FILE_SIZE);
+        checksum_update(iso_context, (unsigned char *)buf, use);
 //        mk_MD5Update(&iso_context, buf, use);
         remain -= use;
         first_block = 0;
@@ -1033,7 +1035,7 @@ void write_jt_match_record(char *filenam
     {
         int pad_size = sector_size - (size % sector_size);
         memset(buf, 0, pad_size);
-        checksum_update(iso_context, buf, pad_size);
+        checksum_update(iso_context, (unsigned char *)buf, pad_size);
 //        mk_MD5Update(&iso_context, buf, pad_size);
     }
 
@@ -1041,7 +1043,7 @@ void write_jt_match_record(char *filenam
     if (size % sector_size)
     {
         int pad_size = sector_size - (size % sector_size);
-        write_compressed_chunk(buf, pad_size);
+        write_compressed_chunk((unsigned char *)buf, pad_size);
         add_unmatched_entry(pad_size);
     }        
 }
diff -up cdrkit-1.1.8/genisoimage/eltorito.c.werror cdrkit-1.1.8/genisoimage/eltorito.c
--- cdrkit-1.1.8/genisoimage/eltorito.c.werror	2008-05-27 15:34:03.000000000 +0200
+++ cdrkit-1.1.8/genisoimage/eltorito.c	2008-05-27 15:34:03.000000000 +0200
@@ -660,7 +660,7 @@ fill_boot_desc(struct eltorito_defaultbo
 		set_731(bi_table.bi_length, de->size);
 		set_731(bi_table.bi_csum, bi_checksum);
 
-		write(bootimage, &bi_table, sizeof (bi_table)); /* FIXME: check return value */
+		do{int ret;ret=write(bootimage, &bi_table, sizeof (bi_table));}while(0); /* FIXME: check return value */
 		close(bootimage);
 	}
 }/* fill_boot_desc(... */
