diff --git a/src/libvterm/README b/src/libvterm/README
index ef74b01..8d4de39 100644
--- a/src/libvterm/README
+++ b/src/libvterm/README
@@ -1,13 +1,12 @@
 This is a MODIFIED version of libvterm.
 
 The original can be found:
-On the original site (tar archive and Bazaar repository):
+- on the original site (tar archive and Bazaar repository):
 	http://www.leonerd.org.uk/code/libvterm/
-Cloned on Github:
+- cloned on Github:
 	https://github.com/neovim/libvterm
 
 Modifications:
 - Add a .gitignore file.
 - Convert from C99 to C90.
 - Other changes to support embedding in Vim.
-- 
diff --git a/src/libvterm/include/vterm.h b/src/libvterm/include/vterm.h
index 1aa6463..5bc47e5 100644
--- a/src/libvterm/include/vterm.h
+++ b/src/libvterm/include/vterm.h
@@ -160,7 +160,9 @@
 /* Free and cleanup a terminal and all its data. */
 void   vterm_free(VTerm* vt);
 
+/* Get the current size of the terminal and store in "rowsp" and "colsp". */
 void vterm_get_size(const VTerm *vt, int *rowsp, int *colsp);
+
 void vterm_set_size(VTerm *vt, int rows, int cols);
 
 int  vterm_get_utf8(const VTerm *vt);
@@ -195,14 +197,14 @@
  *
  * Don't confuse this with the final byte of the CSI escape; 'a' in this case.
  */
-#define CSI_ARG_FLAG_MORE (1<<31)
-#define CSI_ARG_MASK      (~(1<<31))
+#define CSI_ARG_FLAG_MORE (1<<30)
+#define CSI_ARG_MASK      (~(1<<30))
 
 #define CSI_ARG_HAS_MORE(a) ((a) & CSI_ARG_FLAG_MORE)
 #define CSI_ARG(a)          ((a) & CSI_ARG_MASK)
 
 /* Can't use -1 to indicate a missing argument; use this instead */
-#define CSI_ARG_MISSING ((1UL<<31)-1)
+#define CSI_ARG_MISSING ((1<<30)-1)
 
 #define CSI_ARG_IS_MISSING(a) (CSI_ARG(a) == CSI_ARG_MISSING)
 #define CSI_ARG_OR(a,def)     (CSI_ARG(a) == CSI_ARG_MISSING ? (def) : CSI_ARG(a))
@@ -248,7 +250,9 @@
 void  vterm_state_set_unrecognised_fallbacks(VTermState *state, const VTermParserCallbacks *fallbacks, void *user);
 void *vterm_state_get_unrecognised_fbdata(VTermState *state);
 
+/* Initialize the state. */
 void vterm_state_reset(VTermState *state, int hard);
+
 void vterm_state_get_cursorpos(const VTermState *state, VTermPos *cursorpos);
 void vterm_state_get_default_colors(const VTermState *state, VTermColor *default_fg, VTermColor *default_bg);
 void vterm_state_get_palette_color(const VTermState *state, int index, VTermColor *col);
@@ -295,6 +299,7 @@
   int (*sb_popline)(int cols, VTermScreenCell *cells, void *user);
 } VTermScreenCallbacks;
 
+/* Return the screen of the vterm. */
 VTermScreen *vterm_obtain_screen(VTerm *vt);
 
 /*
@@ -317,9 +322,15 @@
   VTERM_DAMAGE_SCROLL   /* entire screen + scrollrect */
 } VTermDamageSize;
 
+/* Invoke the relevant callbacks to update the screen. */
 void vterm_screen_flush_damage(VTermScreen *screen);
+
 void vterm_screen_set_damage_merge(VTermScreen *screen, VTermDamageSize size);
 
+/*
+ * Reset the screen.  Also invokes vterm_state_reset().
+ * Must be called before the terminal can be used.
+ */
 void   vterm_screen_reset(VTermScreen *screen, int hard);
 
 /* Neither of these functions NUL-terminate the buffer */
diff --git a/src/libvterm/include/vterm_keycodes.h b/src/libvterm/include/vterm_keycodes.h
index c575254..7a77916 100644
--- a/src/libvterm/include/vterm_keycodes.h
+++ b/src/libvterm/include/vterm_keycodes.h
@@ -28,9 +28,11 @@
   VTERM_KEY_PAGEUP,
   VTERM_KEY_PAGEDOWN,
 
+  /* F1 is VTERM_KEY_FUNCTION(1), F2 VTERM_KEY_FUNCTION(2), etc. */
   VTERM_KEY_FUNCTION_0   = 256,
   VTERM_KEY_FUNCTION_MAX = VTERM_KEY_FUNCTION_0 + 255,
 
+  /* keypad keys */
   VTERM_KEY_KP_0,
   VTERM_KEY_KP_1,
   VTERM_KEY_KP_2,
diff --git a/src/libvterm/src/keyboard.c b/src/libvterm/src/keyboard.c
index e154a08..e99039d 100644
--- a/src/libvterm/src/keyboard.c
+++ b/src/libvterm/src/keyboard.c
@@ -68,6 +68,7 @@
   int csinum;
 } keycodes_s;
 
+/* Order here must be exactly the same as VTermKey enum! */
 static keycodes_s keycodes[] = {
   { KEYCODE_NONE,       0, 0 }, /* NONE */
 
diff --git a/src/libvterm/src/parser.c b/src/libvterm/src/parser.c
index 380f916..74556dc 100644
--- a/src/libvterm/src/parser.c
+++ b/src/libvterm/src/parser.c
@@ -190,7 +190,7 @@
 size_t vterm_input_write(VTerm *vt, const char *bytes, size_t len)
 {
   size_t pos = 0;
-  const char *string_start;
+  const char *string_start = NULL;  /* init to avoid gcc warning */
 
   switch(vt->parser_state) {
   case NORMAL:
diff --git a/src/libvterm/src/screen.c b/src/libvterm/src/screen.c
index ef13f3d..a174e86 100644
--- a/src/libvterm/src/screen.c
+++ b/src/libvterm/src/screen.c
@@ -819,14 +819,9 @@
 
 VTermScreen *vterm_obtain_screen(VTerm *vt)
 {
-  VTermScreen *screen;
-  if(vt->screen)
-    return vt->screen;
-
-  screen = screen_new(vt);
-  vt->screen = screen;
-
-  return screen;
+  if(!vt->screen)
+    vt->screen = screen_new(vt);
+  return vt->screen;
 }
 
 void vterm_screen_enable_altscreen(VTermScreen *screen, int altscreen)
diff --git a/src/libvterm/src/state.c b/src/libvterm/src/state.c
index 1b7e89d..0c68530 100644
--- a/src/libvterm/src/state.c
+++ b/src/libvterm/src/state.c
@@ -1194,6 +1194,7 @@
     break;
 
   case LEADER('>', 0x63): /* DEC secondary Device Attributes */
+    /* This returns xterm version number 100. */
     vterm_push_output_sprintf_ctrl(state->vt, C1_CSI, ">%d;%d;%dc", 0, 100, 0);
     break;
 
diff --git a/src/version.c b/src/version.c
index c344072..e2ab84c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    763,
+/**/
     762,
 /**/
     761,
