diff --git a/client/files/sddm-override.conf b/client/files/sddm-override.conf
new file mode 100644
index 0000000000000000000000000000000000000000..0a38143e91b172513316cec3bc667ecf240383d0
--- /dev/null
+++ b/client/files/sddm-override.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=network-online.target
+After=network-online.target
diff --git a/client/tasks/main.yml b/client/tasks/main.yml
index d3b96bf692afb385fe8fa7b87503cba36a0b3e89..ffea1c094e6b2941e4732646e171973f6fe09685 100644
--- a/client/tasks/main.yml
+++ b/client/tasks/main.yml
@@ -10,3 +10,5 @@
 - meta: flush_handlers
 - include: configuration.yml
 - meta: flush_handlers
+- include: network.yml
+- meta: flush_handlers
diff --git a/client/tasks/network.yml b/client/tasks/network.yml
index 55ba1f9695f182b8fc2bc98284bf54a880917338..1cdaf955f117fa2a46c2f6ee4f52452766a623c4 100644
--- a/client/tasks/network.yml
+++ b/client/tasks/network.yml
@@ -20,12 +20,11 @@
     enabled: yes
 
 - name: ensure legacy methods are disabled
-  service:
+  systemd:
     name: "{{ item }}"
-    state: stopped
     enabled: no
   with_items:
-    - "ifup@"
+    - "ifup@*"
     - "networking"
 
 - name: ensure we wait for network to be online
@@ -51,3 +50,13 @@
   notify:
     - reload systemd service files
 
+- name: ensure rpc waits for network to be online
+  copy:
+    src: sddm-override.conf
+    dest: /etc/systemd/system/rpc-svcgssd.service.d/network.conf
+    owner: root
+    group: root
+    mode: 0644
+  notify:
+    - reload systemd service files
+