diff --git a/src/adverb.c b/src/adverb.c
index 33acaa64dadf0e8a7ccb54a7af251ef31cbca95d..8093c9fbbcb6f10488936eb6d8505d1de94fc90b 100644
--- a/src/adverb.c
+++ b/src/adverb.c
@@ -451,13 +451,15 @@ static GOptionEntry options[] =
   { NULL }
 };
 
+static int my_pid = -1;
+
 static void
 cli_log_func (const gchar *log_domain,
               GLogLevelFlags log_level,
               const gchar *message,
               gpointer user_data)
 {
-  g_printerr ("%s: %s\n", (const char *) user_data, message);
+  g_printerr ("%s[%d]: %s\n", (const char *) user_data, my_pid, message);
 }
 
 int
@@ -478,6 +480,8 @@ main (int argc,
   sigset_t mask;
   struct sigaction terminate_child_action = {};
 
+  my_pid = getpid ();
+
   sigemptyset (&mask);
   sigaddset (&mask, SIGCHLD);
 
diff --git a/src/launch.c b/src/launch.c
index 54f2e5045def3f7155e93bc2db30ff2ceeaadb05..41413a0770681d124ac0049b5f16f5fb6b80cafe 100644
--- a/src/launch.c
+++ b/src/launch.c
@@ -440,13 +440,15 @@ static const GOptionEntry options[] =
   { NULL }
 };
 
+static int my_pid = -1;
+
 static void
 cli_log_func (const gchar *log_domain,
               GLogLevelFlags log_level,
               const gchar *message,
               gpointer user_data)
 {
-  g_printerr ("%s: %s\n", (const char *) user_data, message);
+  g_printerr ("%s[%d]: %s\n", (const char *) user_data, my_pid, message);
 }
 
 int
@@ -476,6 +478,8 @@ main (int argc,
   GHashTableIter iter;
   gpointer key, value;
 
+  my_pid = getpid ();
+
   setlocale (LC_ALL, "");
 
   g_set_prgname ("pressure-vessel-launch");
diff --git a/src/launcher.c b/src/launcher.c
index 7f9c5e64440ce0862293775fb4a831471079b1f2..e26df69e5db7426c06e5768b1da511881e644cac 100644
--- a/src/launcher.c
+++ b/src/launcher.c
@@ -1005,13 +1005,15 @@ static GOptionEntry options[] =
   { NULL }
 };
 
+static int my_pid = -1;
+
 static void
 cli_log_func (const gchar *log_domain,
               GLogLevelFlags log_level,
               const gchar *message,
               gpointer user_data)
 {
-  g_printerr ("%s: %s\n", (const char *) user_data, message);
+  g_printerr ("%s[%d]: %s\n", (const char *) user_data, my_pid, message);
 }
 
 int
@@ -1027,6 +1029,8 @@ main (int argc,
   gsize i;
   int ret = EX_USAGE;
 
+  my_pid = getpid ();
+
   setlocale (LC_ALL, "");
 
   g_set_prgname ("pressure-vessel-launcher");
diff --git a/src/wrap.c b/src/wrap.c
index a8da29920e91f3c8d2d1a75adebe34123b97a275..b4733ff27c17ddb48d32be8c6876d5fb03faf9bf 100644
--- a/src/wrap.c
+++ b/src/wrap.c
@@ -842,13 +842,15 @@ tristate_environment (const gchar *name)
   return TRISTATE_MAYBE;
 }
 
+static int my_pid = -1;
+
 static void
 cli_log_func (const gchar *log_domain,
               GLogLevelFlags log_level,
               const gchar *message,
               gpointer user_data)
 {
-  g_printerr ("%s: %s\n", (const char *) user_data, message);
+  g_printerr ("%s[%d]: %s\n", (const char *) user_data, my_pid, message);
 }
 
 int
@@ -886,6 +888,8 @@ main (int argc,
       "STEAM_COMPAT_TOOL_PATH",
     };
 
+  my_pid = getpid ();
+
   setlocale (LC_ALL, "");
 
   g_set_prgname ("pressure-vessel-wrap");