diff --git a/src/libvterm/src/pen.c b/src/libvterm/src/pen.c
index 81987f6..3c58c9c 100644
--- a/src/libvterm/src/pen.c
+++ b/src/libvterm/src/pen.c
@@ -80,9 +80,9 @@
     if(argcount < 3)
       return argcount;
 
-    col->red   = CSI_ARG(args[0]);
-    col->green = CSI_ARG(args[1]);
-    col->blue  = CSI_ARG(args[2]);
+    col->red   = (uint8_t)CSI_ARG(args[0]);
+    col->green = (uint8_t)CSI_ARG(args[1]);
+    col->blue  = (uint8_t)CSI_ARG(args[2]);
 
     return 3;
 
diff --git a/src/libvterm/src/state.c b/src/libvterm/src/state.c
index 0c68530..8f8909e 100644
--- a/src/libvterm/src/state.c
+++ b/src/libvterm/src/state.c
@@ -258,7 +258,7 @@
                              &state->encoding[state->gr_set];
 
   (*encoding->enc->decode)(encoding->enc, encoding->data,
-      codepoints, &npoints, state->gsingle_set ? 1 : len,
+      codepoints, &npoints, state->gsingle_set ? 1 : (int)len,
       bytes, &eaten, len);
 
   /* There's a chance an encoding (e.g. UTF-8) hasn't found enough bytes yet
@@ -411,7 +411,7 @@
 #endif
 
   vterm_allocator_free(state->vt, codepoints);
-  return eaten;
+  return (int)eaten;
 }
 
 static int on_control(unsigned char control, void *user)
@@ -1680,7 +1680,7 @@
   state->lineinfo = vterm_allocator_malloc(state->vt, state->rows * sizeof(VTermLineInfo));
 
   state->encoding_utf8.enc = vterm_lookup_encoding(ENC_UTF8, 'u');
-  if(*state->encoding_utf8.enc->init)
+  if(*state->encoding_utf8.enc->init != NULL)
     (*state->encoding_utf8.enc->init)(state->encoding_utf8.enc, state->encoding_utf8.data);
 
   vterm_parser_set_callbacks(vt, &parser_callbacks, state);
diff --git a/src/terminal.c b/src/terminal.c
index 9833a43..4cc755c 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -35,6 +35,7 @@
  * TODO:
  * - include functions from #1871
  * - do not store terminal buffer in viminfo.  Or prefix term:// ?
+ * - Make CTRL-W . send CTRL-W to terminal?
  * - Add a scrollback buffer (contains lines to scroll off the top).
  *   Can use the buf_T lines, store attributes somewhere else?
  * - When the job ends:
@@ -204,7 +205,7 @@
     {
 	int	i;
 	size_t	len = STRLEN(cmd) + 10;
-	char_u	*p = alloc(len);
+	char_u	*p = alloc((int)len);
 
 	for (i = 1; p != NULL; ++i)
 	{
@@ -301,7 +302,7 @@
 	{
 	    if (*p == NL)
 		break;
-	    p += utf_ptr2len_len(p, len - (p - msg));
+	    p += utf_ptr2len_len(p, (int)(len - (p - msg)));
 	}
 	len_now = p - msg - done;
 	vterm_input_write(vterm, (char *)msg + done, len_now);
@@ -453,7 +454,7 @@
 	vterm_keyboard_unichar(vterm, c, mod);
 
     /* Read back the converted escape sequence. */
-    return vterm_output_read(vterm, buf, KEY_BUF_LEN);
+    return (int)vterm_output_read(vterm, buf, KEY_BUF_LEN);
 }
 
 /*
@@ -540,7 +541,7 @@
 	if (len > 0)
 	    /* TODO: if FAIL is returned, stop? */
 	    channel_send(curbuf->b_term->tl_job->jv_channel, PART_IN,
-						     (char_u *)buf, len, NULL);
+						     (char_u *)buf, (int)len, NULL);
     }
 }
 
@@ -1056,7 +1057,7 @@
 	else
 	    txt = (char_u *)_("finished");
 	len = 9 + STRLEN(term->tl_buffer->b_fname) + STRLEN(txt);
-	term->tl_status_text = alloc(len);
+	term->tl_status_text = alloc((int)len);
 	if (term->tl_status_text != NULL)
 	    vim_snprintf((char *)term->tl_status_text, len, "%s [%s]",
 						term->tl_buffer->b_fname, txt);
diff --git a/src/version.c b/src/version.c
index 530663e..fe82a36 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    777,
+/**/
     776,
 /**/
     775,
