Index: ram/etitim.c
===================================================================
--- ram/etitim.c	(revision ffce2bc24d9bc17b76e2f79a5911072ae50bb992)
+++ ram/etitim.c	(revision 8a3cab0aadccf6b1a0a54af637b8f9fe4563eace)
@@ -27,6 +27,6 @@
 	sc = 1000L;
 	tt = timeto(curfunc, subj);
-	th = tt / sc;
-	tl = tt - (th * sc);
+	th = (int16_t)(tt / sc);
+	tl = (int16_t)(tt - (th * sc));
 
 	sprintf(ebuf, "%02d.%03d", th, tl);
@@ -64,8 +64,8 @@
 
 	for (i = 0; i < 2; i++)		/* convert from ASCII to binary */
-		tmpval = (tmpval * 10) + (ebuf[i] - '0');
+		tmpval = (tmpval * 10) + (uint16_t)(ebuf[i] - '0');
 
 	for (i = 3; i < 6; i++)
-		tmpval = (tmpval * 10) + (ebuf[i] - '0');
+		tmpval = (tmpval * 10) + (uint16_t)(ebuf[i] - '0');
 #if DEBUGIT
 	printf("ef_itim(): subj=%d, case=%d, min=%d, val=%d, max=%d\r\n",
@@ -103,6 +103,6 @@
 	sc = 1000L;
 	tt = timeto(curfunc, subj);
-	th = tt / sc;
-	tl = tt - (th * sc);
+	th = (int16_t)(tt / sc);
+	tl = (int16_t)(tt - (th * sc));
 
 	sprintf(dspbuf, "%02d.%03d", th, tl);	/* convert to ASCII */
@@ -132,9 +132,9 @@
 		return(FAILURE);
 
-	ebuf[ec] = k + '0';
+	ebuf[ec] = (int8_t)(k + '0');
 	ebuf[2] = '.';
 	ebuf[6] = '\0';
 
-	dspbuf[0] = k + '0';
+	dspbuf[0] = (int8_t)(k + '0');
 	dspbuf[1] = '\0';
 
