diff --git a/Makefile.am b/Makefile.am
index 3ea95e94808..8514ec95728 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -413,6 +413,7 @@ dist_systemunit_DATA = \
units/remote-fs.target \
units/remote-fs-pre.target \
units/network.target \
+ units/network-pre.target \
units/network-online.target \
units/nss-lookup.target \
units/nss-user-lookup.target \
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
index 38b94a7657e..cda6edd42b5 100644
--- a/man/systemd.special.xml
+++ b/man/systemd.special.xml
@@ -72,6 +72,7 @@
multi-user.target,
network.target,
network-online.target,
+ network-pre.target,
nss-lookup.target,
nss-user-lookup.target,
paths.target,
@@ -890,6 +891,20 @@
facility.
+
+ network-pre.target
+
+ This passive target unit
+ may be pulled in by services
+ that want to run before any
+ network is set up, for example
+ for the purpose of setting up a
+ firewall. All network
+ management software orders
+ itself after this target, but
+ does not pull it in.
+
+
nss-lookup.target
diff --git a/units/local-fs.target b/units/local-fs.target
index ae3cedcb658..70cb13f25d4 100644
--- a/units/local-fs.target
+++ b/units/local-fs.target
@@ -9,7 +9,5 @@
Description=Local File Systems
Documentation=man:systemd.special(7)
After=local-fs-pre.target
-DefaultDependencies=no
-Conflicts=shutdown.target
OnFailure=emergency.target
OnFailureJobMode=replace-irreversibly
diff --git a/units/network-pre.target b/units/network-pre.target
new file mode 100644
index 00000000000..0ea4bc739a9
--- /dev/null
+++ b/units/network-pre.target
@@ -0,0 +1,12 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Network (Pre)
+Documentation=man:systemd.special(7)
+Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
+RefuseManualStart=yes
diff --git a/units/network.target b/units/network.target
index 65fc64b02cf..61ebdcadd0b 100644
--- a/units/network.target
+++ b/units/network.target
@@ -9,3 +9,5 @@
Description=Network
Documentation=man:systemd.special(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
+After=network-pre.target
+RefuseManualStart=yes
diff --git a/units/systemd-networkd.service.in b/units/systemd-networkd.service.in
index 373ac4e0fd1..48f4d63a872 100644
--- a/units/systemd-networkd.service.in
+++ b/units/systemd-networkd.service.in
@@ -9,7 +9,7 @@
Description=Network Service
Documentation=man:systemd-networkd.service(8)
DefaultDependencies=no
-After=dbus.service
+After=dbus.service network-pre.target
Before=network.target
Wants=network.target
ConditionCapability=CAP_NET_ADMIN