diff --git a/GNUmakefile b/GNUmakefile
index 8805a02..19be7aa 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -6,7 +6,7 @@ PREFIX?=/usr/local
 BINDIR=${DESTDIR}${PREFIX}/bin
 UDEVDIR=${DESTDIR}/usr/lib/udev/rules.d
 SYSTEMDDIR=${DESTDIR}/usr/lib/systemd
-SYSTEMD_SYSTEM_DIR=${SYSTEMDDIR}/system
+SYSTEMD_SYSTEM_DIR=${DESTDIR}/lib/systemd/system
 SYSTEMD_NETWORK_DIR=${SYSTEMDDIR}/network
 SHARE_DIR=${DESTDIR}/${PREFIX}/share/${pkgname}
 
diff --git a/lib/lib.sh b/lib/lib.sh
index 049437a..0bba651 100644
--- a/lib/lib.sh
+++ b/lib/lib.sh
@@ -479,10 +479,14 @@ register_networkd_reloader() {
         cnt+=1
         mkdir -p "$lockdir"
         trap 'debug "Called trap" ; maybe_reload_networkd' EXIT
-        # If the redirect fails, most likely because the target file
-        # already exists and -o noclobber is in effect, $? will be set
-        # nonzero.  If it succeeds, it is set to 0
         echo $$ > "${lockfile}"
+	# Shellcheck would warn about the following line, with "This
+	# $? refers to echo/printf, not a previous command. Assign to
+	# variable to avoid it being overwritten."  We actually want
+	# echo's exit code, since it will be nonzero if the redirect
+	# fails (that is, if somebody else deleted $lockdir before we
+	# got to put a file there)
+	# shellcheck disable=SC2320
         registered=$?
         [ $registered -eq 0 ] && break
         sleep 0.1
