diff -Naur heimdal-1.5.2/kadmin/kadm_conn.c heimdal-1.5.2-lunar/kadmin/kadm_conn.c
--- heimdal-1.5.2/kadmin/kadm_conn.c	2012-01-10 22:53:51.000000000 +0100
+++ heimdal-1.5.2-lunar/kadmin/kadm_conn.c	2012-08-02 09:47:16.763000818 +0200
@@ -188,9 +188,12 @@
     }
 
     pgrp = getpid();
-
-    if(setpgid(0, pgrp) < 0)
-	err(1, "setpgid");
+	
+    /* pgid already set under systemd, ignore the systemcall if HEIMDAL_SYSTEMD is set */
+    char *systemdEnv = getenv("HEIMDAL_SYSTEMD");
+    if(systemdEnv == NULL)
+        if(setpgid(0, pgrp) < 0)
+	    err(1, "setpgid");
 
     signal(SIGTERM, terminate);
     signal(SIGINT, terminate);
