diff --git a/src/manager.c b/src/manager.c
index 38964939c33..b4b963a6626 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -241,6 +241,12 @@ static int manager_find_paths(Manager *m) {
 
         assert(m);
 
+        /* Unset previous data, in case we are called on reload */
+        strv_free(m->unit_path);
+        strv_free(m->sysvinit_path);
+        strv_free(m->sysvrcnd_path);
+        m->unit_path = m->sysvinit_path = m->sysvrcnd_path = NULL;
+
         /* First priority is whatever has been passed to us via env
          * vars */
         if ((e = getenv("SYSTEMD_UNIT_PATH")))
@@ -2346,6 +2352,10 @@ int manager_reload(Manager *m) {
         /* From here on there is no way back. */
         manager_clear_jobs_and_units(m);
 
+        /* Find new unit paths */
+        if ((q = manager_find_paths(m)) < 0)
+                r = q;
+
         /* First, enumerate what we can from all config files */
         if ((q = manager_enumerate(m)) < 0)
                 r = q;
diff --git a/src/systemctl.c b/src/systemctl.c
index b0fb7b24ae8..be32b0d152d 100644
--- a/src/systemctl.c
+++ b/src/systemctl.c
@@ -1397,7 +1397,6 @@ static int parse_argv(int argc, char *argv[]) {
 
 int main(int argc, char*argv[]) {
 
-
         static const struct {
                 const char* verb;
                 const enum {