diff --git a/pkg/systemd/listendfd.go b/pkg/systemd/listendfd.go
index 08070b6ece..0fbc0a6ab6 100644
--- a/pkg/systemd/listendfd.go
+++ b/pkg/systemd/listendfd.go
@@ -2,7 +2,6 @@ package systemd
 
 import (
 	"errors"
-	"fmt"
 	"net"
 	"strconv"
 
@@ -12,8 +11,13 @@ import (
 // ListenFD returns the specified socket activated files as a slice of
 // net.Listeners or all of the activated files if "*" is given.
 func ListenFD(addr string) ([]net.Listener, error) {
-	files := activation.Files(false)
-	if files == nil || len(files) == 0 {
+	// socket activation
+	listeners, err := activation.Listeners(false)
+	if err != nil {
+		return nil, err
+	}
+
+	if listeners == nil || len(listeners) == 0 {
 		return nil, errors.New("No sockets found")
 	}
 
@@ -24,20 +28,10 @@ func ListenFD(addr string) ([]net.Listener, error) {
 
 	fdNum, _ := strconv.Atoi(addr)
 	fdOffset := fdNum - 3
-	if (addr != "*") && (len(files) < int(fdOffset)+1) {
+	if (addr != "*") && (len(listeners) < int(fdOffset)+1) {
 		return nil, errors.New("Too few socket activated files passed in")
 	}
 
-	// socket activation
-	listeners := make([]net.Listener, len(files))
-	for i, f := range files {
-		var err error
-		listeners[i], err = net.FileListener(f)
-		if err != nil {
-			return nil, fmt.Errorf("Error setting up FileListener for fd %d: %s", f.Fd(), err.Error())
-		}
-	}
-
 	if addr == "*" {
 		return listeners, nil
 	}