diff --git a/debian/changelog b/debian/changelog
index df6c1aa..551697f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+lightdm (1.18.1-1+iwj1) UNRELEASED; urgency=medium
+
+  * Reset SIGPIPE in session_child_run.  Closes:#823460.
+  * Reset SIGPIPE in process_start (affects the X server, for example).
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 08 May 2016 17:50:01 +0100
+
 lightdm (1.18.1-1) unstable; urgency=medium
 
   * New upstream bugfix release.
diff --git a/src/process.c b/src/process.c
index d9b7eb9..dbe86c8 100644
--- a/src/process.c
+++ b/src/process.c
@@ -213,6 +213,8 @@ process_start (Process *process, gboolean block)
     pid = fork ();
     if (pid == 0)
     {
+        signal(SIGPIPE, SIG_DFL); /* Undo glib2.0's SIG_IGN */
+
         /* Do custom setup */
         if (process->priv->run_func)
             process->priv->run_func (process, process->priv->run_func_data);
diff --git a/src/session-child.c b/src/session-child.c
index f3a5e1b..981cfb7 100644
--- a/src/session-child.c
+++ b/src/session-child.c
@@ -676,6 +676,8 @@ session_child_run (int argc, char **argv)
     child_pid = fork ();
     if (child_pid == 0)
     {
+        signal(SIGPIPE, SIG_DFL); /* Undo glib2.0's SIG_IGN */
+
         /* Make this process its own session */
         if (setsid () < 0)
             _exit (errno);
