diff --git a/src/wayland.c b/src/wayland.c
index aca3e07..dc34925 100644
--- a/src/wayland.c
+++ b/src/wayland.c
@@ -8,7 +8,7 @@
  */
 
 /*
- * wayland.c: Stuff related to wayland
+ * wayland.c: Stuff related to Wayland
  */
 
 #include "vim.h"
@@ -49,7 +49,7 @@
 #endif
 } vwl_global_objects_T;
 
-// Struct wrapper for wayland display and registry
+// Struct wrapper for Wayland display and registry
 typedef struct {
     struct wl_display	*proxy;
     int			fd;	// File descriptor for display
@@ -946,7 +946,7 @@
 }
 
 /*
- * Connects to the wayland display with given name and binds to global objects
+ * Connects to the Wayland display with given name and binds to global objects
  * as needed. If display is NULL then the $WAYLAND_DISPLAY environment variable
  * will be used (handled by libwayland). Returns FAIL on failure and OK on
  * success
@@ -970,7 +970,7 @@
 }
 
 /*
- * Disconnect wayland client and free up all resources used.
+ * Disconnect Wayland client and free up all resources used.
  */
     void
 wayland_uninit_client(void)
@@ -984,7 +984,7 @@
 }
 
 /*
- * Return TRUE if wayland display connection is valid and ready.
+ * Return TRUE if Wayland display connection is valid and ready.
  */
     int
 wayland_client_is_connected(int quiet)
@@ -1884,7 +1884,7 @@
 }
 
 /*
- * Setup required objects to interact with wayland selections/clipboard on given
+ * Setup required objects to interact with Wayland selections/clipboard on given
  * seat. Returns OK on success and FAIL on failure.
  */
     int
@@ -2325,7 +2325,7 @@
 }
 
 /*
- * Return TRUE if the wayland clipboard/selections are ready to use.
+ * Return TRUE if the Wayland clipboard/selections are ready to use.
  */
     int
 wayland_cb_is_ready(void)
@@ -2339,7 +2339,7 @@
 }
 
 /*
- * Reload wayland clipboard, useful if changing seat.
+ * Reload Wayland clipboard, useful if changing seat.
  */
     int
 wayland_cb_reload(void)
@@ -2391,7 +2391,7 @@
 }
 
 /*
- * Disconnect then reconnect wayland connection, and update clipmethod.
+ * Disconnect then reconnect Wayland connection, and update clipmethod.
  */
     void
 ex_wlrestore(exarg_T *eap)
@@ -2405,7 +2405,7 @@
 	display = (char*)eap->arg;
 
     // Return early if shebang is not passed, we are still connected, and if not
-    // changing to a new wayland display.
+    // changing to a new Wayland display.
     if (!eap->forceit && wayland_client_is_connected(TRUE) &&
 	    (display == wayland_display_name ||
 	     (wayland_display_name != NULL &&
@@ -2434,14 +2434,14 @@
 
     if (wayland_init_client(display) == OK)
     {
-	smsg(_("restoring wayland display %s"), wayland_display_name);
+	smsg(_("restoring Wayland display %s"), wayland_display_name);
 
 #ifdef FEAT_WAYLAND_CLIPBOARD
 	wayland_cb_init((char*)p_wse);
 #endif
     }
     else
-	msg(_("failed restoring, lost connection to wayland display"));
+	msg(_("failed restoring, lost connection to Wayland display"));
 
     vim_free(display);
 
