--- daemon/gdm-session-worker.c.orig	2015-04-02 06:52:41.000000000 -0700
+++ daemon/gdm-session-worker.c	2015-05-02 12:56:03.000000000 -0700
@@ -754,6 +754,33 @@
         return utf8;
 }
 
+#ifdef __APPLE__
+#include <Availability.h>
+#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1060
+static char * strndup (char const *s, size_t n);
+static size_t strnlen (const char *string, size_t maxlen);
+
+static size_t
+strnlen (const char *string, size_t maxlen)
+{
+  const char *end = memchr (string, '\0', maxlen);
+  return end ? (size_t) (end - string) : maxlen;
+}
+
+static char *
+strndup (char const *s, size_t n)
+{
+  size_t len = strnlen (s, n);
+  char *new = malloc (len + 1);
+
+  if (new == NULL)
+    return NULL;
+
+  new[len] = '\0';
+  return memcpy (new, s, len);
+}
+#endif
+#endif
 static gboolean
 gdm_session_worker_process_pam_message (GdmSessionWorker          *worker,
                                         const struct pam_message  *query,