64-bit fixes (SF#1790872: https://sourceforge.net/tracker/index.php?func=detail&aid=1790872&group_id=13478&atid=113478)
diff --git a/doc/html/changelog.html b/doc/html/changelog.html
index eccac09..9d49b05 100644
--- a/doc/html/changelog.html
+++ b/doc/html/changelog.html
@@ -109,6 +109,7 @@
 					<li>Some MinGW fixes (<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1684879&amp;group_id=13478&amp;atid=113478">SF #1684879</a>).</li>
 					<li>Solaris 10 fixes (<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1783225&amp;group_id=13478&amp;atid=113478">SF #1783225</a>).</li>
 					<li>OS/2 fixes (<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1771378&amp;group_id=13478&amp;atid=113478">SF #1771378</a> <a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1229495&amp;group_id=13478&amp;atid=113478">SF #1229495</a>).</li>
+					<li>64-bit fixes (<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1790872&amp;group_id=13478&amp;atid=113478">SF #1790872</a>).</li>
 				</ul>
 			</li>
 			<li>
diff --git a/src/libFLAC/lpc.c b/src/libFLAC/lpc.c
index 26d1382..7806348 100644
--- a/src/libFLAC/lpc.c
+++ b/src/libFLAC/lpc.c
@@ -569,7 +569,7 @@
 }
 #else /* fully unrolled version for normal use */
 {
-	unsigned i;
+	int i;
 	FLAC__int64 sum;
 
 	FLAC__ASSERT(order > 0);
@@ -584,7 +584,7 @@
 		if(order > 8) {
 			if(order > 10) {
 				if(order == 12) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[11] * (FLAC__int64)data[i-12];
 						sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
@@ -602,7 +602,7 @@
 					}
 				}
 				else { /* order == 11 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
 						sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
@@ -621,7 +621,7 @@
 			}
 			else {
 				if(order == 10) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
 						sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
@@ -637,7 +637,7 @@
 					}
 				}
 				else { /* order == 9 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
 						sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
@@ -656,7 +656,7 @@
 		else if(order > 4) {
 			if(order > 6) {
 				if(order == 8) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
 						sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
@@ -670,7 +670,7 @@
 					}
 				}
 				else { /* order == 7 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
 						sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
@@ -685,7 +685,7 @@
 			}
 			else {
 				if(order == 6) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
 						sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
@@ -697,7 +697,7 @@
 					}
 				}
 				else { /* order == 5 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
 						sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
@@ -712,7 +712,7 @@
 		else {
 			if(order > 2) {
 				if(order == 4) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
 						sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
@@ -722,7 +722,7 @@
 					}
 				}
 				else { /* order == 3 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
 						sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
@@ -733,7 +733,7 @@
 			}
 			else {
 				if(order == 2) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
 						sum += qlp_coeff[0] * (FLAC__int64)data[i-1];
@@ -741,14 +741,14 @@
 					}
 				}
 				else { /* order == 1 */
-					for(i = 0; i < data_len; i++)
+					for(i = 0; i < (int)data_len; i++)
 						residual[i] = data[i] - (FLAC__int32)((qlp_coeff[0] * (FLAC__int64)data[i-1]) >> lp_quantization);
 				}
 			}
 		}
 	}
 	else { /* order > 12 */
-		for(i = 0; i < data_len; i++) {
+		for(i = 0; i < (int)data_len; i++) {
 			sum = 0;
 			switch(order) {
 				case 32: sum += qlp_coeff[31] * (FLAC__int64)data[i-32];
@@ -1099,7 +1099,7 @@
 }
 #else /* fully unrolled version for normal use */
 {
-	unsigned i;
+	int i;
 	FLAC__int64 sum;
 
 	FLAC__ASSERT(order > 0);
@@ -1114,7 +1114,7 @@
 		if(order > 8) {
 			if(order > 10) {
 				if(order == 12) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[11] * (FLAC__int64)data[i-12];
 						sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
@@ -1132,7 +1132,7 @@
 					}
 				}
 				else { /* order == 11 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
 						sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
@@ -1151,7 +1151,7 @@
 			}
 			else {
 				if(order == 10) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
 						sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
@@ -1167,7 +1167,7 @@
 					}
 				}
 				else { /* order == 9 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
 						sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
@@ -1186,7 +1186,7 @@
 		else if(order > 4) {
 			if(order > 6) {
 				if(order == 8) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
 						sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
@@ -1200,7 +1200,7 @@
 					}
 				}
 				else { /* order == 7 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
 						sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
@@ -1215,7 +1215,7 @@
 			}
 			else {
 				if(order == 6) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
 						sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
@@ -1227,7 +1227,7 @@
 					}
 				}
 				else { /* order == 5 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
 						sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
@@ -1242,7 +1242,7 @@
 		else {
 			if(order > 2) {
 				if(order == 4) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
 						sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
@@ -1252,7 +1252,7 @@
 					}
 				}
 				else { /* order == 3 */
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
 						sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
@@ -1263,7 +1263,7 @@
 			}
 			else {
 				if(order == 2) {
-					for(i = 0; i < data_len; i++) {
+					for(i = 0; i < (int)data_len; i++) {
 						sum = 0;
 						sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
 						sum += qlp_coeff[0] * (FLAC__int64)data[i-1];
@@ -1271,14 +1271,14 @@
 					}
 				}
 				else { /* order == 1 */
-					for(i = 0; i < data_len; i++)
+					for(i = 0; i < (int)data_len; i++)
 						data[i] = residual[i] + (FLAC__int32)((qlp_coeff[0] * (FLAC__int64)data[i-1]) >> lp_quantization);
 				}
 			}
 		}
 	}
 	else { /* order > 12 */
-		for(i = 0; i < data_len; i++) {
+		for(i = 0; i < (int)data_len; i++) {
 			sum = 0;
 			switch(order) {
 				case 32: sum += qlp_coeff[31] * (FLAC__int64)data[i-32];