--- eltorito.c.orig	2008-06-01 14:23:40.000000000 +0200
+++ eltorito.c	2008-08-29 19:30:15.000000000 +0200
@@ -779,9 +804,14 @@
         offset += 4;
     }
     if (offset != imgsize) {
+	uint32_t bytefactor=1;
         /* file length not multiple of 4 */
-        return iso_msg_submit(t->image->id, ISO_ISOLINUX_CANT_PATCH, 0,
-            "Unexpected isolinux image length. Patch might not work.");
+	/* empty space in isofs is padded with zero; assume same for last dword */
+	while (offset < imgsize) {
+    	    checksum += iso_read_lsb(buf + offset, 1) * bytefactor;
+    	    offset ++;
+	    bytefactor *= 256;
+	}
     }
     
     /* patch boot info table */
