Index: ram/im700.c
===================================================================
--- ram/im700.c	(revision 3f2d5186e45aa24fe46ced3866b4814e954f9891)
+++ ram/im700.c	(revision c93e44da8f155b93b1052c5d77fe3e18a3215b96)
@@ -597,5 +597,5 @@
 	memset(keystat, 0, 24);		/* clear front panel key status */
 	memset(trgtab, 	0, NTRIGS);	/* clear trigger status table */
-	memset(mctlval, 0, NCTRLS);	/* clear MIDI controller values */
+	memset(mctlval, 0, 2 * NCTRLS);	/* clear MIDI controller values */
 
 	memsetw(grpmode, 0, 12);	/* set all groups to PLAY */
Index: ram/msm.c
===================================================================
--- ram/msm.c	(revision 3f2d5186e45aa24fe46ced3866b4814e954f9891)
+++ ram/msm.c	(revision c93e44da8f155b93b1052c5d77fe3e18a3215b96)
@@ -277,5 +277,5 @@
 											ep->e_time = t_cur;
 											ep->e_type = EV_ANVL;
-											ep->e_data1 = 0x0050 | i;
+											ep->e_data1 = (int8_t)(0x0050 | i);
 											ep->e_dn = (struct s_entry *)((int32_t)mdb1 << 16);
 											p_cur = e_ins(ep, ep_adj(p_cur, 0, t_cur))->e_fwd;
@@ -515,5 +515,5 @@
 							prstab[t1] = 0;
 
-							stmproc(t1);	/* process as a patch stimulus */
+							stmproc((uint16_t)t1);	/* process as a patch stimulus */
 
 							if (editsw) {	/* edit mode */
@@ -570,5 +570,5 @@
 							}
 
-							stmproc(0x8000 | t1);	/* process as a patch stimulus */
+							stmproc((uint16_t)0x8000 | (uint16_t)t1);	/* process as a patch stimulus */
 						}
 
Index: ram/swinit.c
===================================================================
--- ram/swinit.c	(revision 3f2d5186e45aa24fe46ced3866b4814e954f9891)
+++ ram/swinit.c	(revision c93e44da8f155b93b1052c5d77fe3e18a3215b96)
@@ -115,8 +115,8 @@
 int8_t	loadedf[NLTYPES][8];	/* loaded file names */
 int8_t	masens[3];		/* MIDI port active sensing flags */
-int8_t	mctlval[NCTRLS];	/* MIDI controller values */
-int8_t	mdbyte[3];		/* MIDI data byte buffers */
+int16_t	mctlval[NCTRLS];	/* MIDI controller values */
+int16_t	mdbyte[3];		/* MIDI data byte buffers */
 int8_t	mpsust[48];		/* MIDI sustain status, by port and channel */
-int8_t	mrstat[3];		/* MIDI running status */
+int16_t	mrstat[3];		/* MIDI running status */
 int8_t	scname[N_SCORES][16];	/* Score names */
 int8_t	trgtab[NTRIGS];		/* trigger status */
Index: ram/swinit.x
===================================================================
--- ram/swinit.x	(revision 3f2d5186e45aa24fe46ced3866b4814e954f9891)
+++ ram/swinit.x	(revision c93e44da8f155b93b1052c5d77fe3e18a3215b96)
@@ -90,9 +90,9 @@
 extern	int8_t		masens[3];
 extern	int16_t		mctlnum[4];
-extern	int8_t		mctlval[NCTRLS];
-extern	int8_t		mdbyte[3];
+extern	int16_t		mctlval[NCTRLS];
+extern	int16_t		mdbyte[3];
 extern	int16_t		mpbend[48];
 extern	int8_t		mpsust[48];
-extern	int8_t		mrstat[3];
+extern	int16_t		mrstat[3];
 extern	int16_t		msmstv[3];
 extern	int32_t		ndbytes;
