diff --git a/nixosModules/ags/config/widgets/bar/items/network.tsx b/nixosModules/ags/config/widgets/bar/items/network.tsx
index 513475c3..84777a82 100644
--- a/nixosModules/ags/config/widgets/bar/items/network.tsx
+++ b/nixosModules/ags/config/widgets/bar/items/network.tsx
@@ -2,11 +2,12 @@ import { bind, Variable } from 'astal';
 import { Gtk } from 'astal/gtk3';
 
 import AstalNetwork from 'gi://AstalNetwork';
-const Network = AstalNetwork.get_default();
 
 
 export default () => {
     const Hovered = Variable(false);
+    // TODO: do this everywhere else
+    const network = AstalNetwork.get_default();
 
     return (
         <button
@@ -16,32 +17,37 @@ export default () => {
             onHover={() => Hovered.set(true)}
             onHoverLost={() => Hovered.set(false)}
         >
-            {bind(Network, 'primary').as((primary) => {
+            {bind(network, 'primary').as((primary) => {
                 if (primary === AstalNetwork.Primary.UNKNOWN) {
                     return (<icon icon="network-wireless-signal-none-symbolic" />);
                 }
                 else if (primary === AstalNetwork.Primary.WIFI) {
-                    const Wifi = Network.get_wifi();
+                    const Wifi = network.get_wifi();
 
                     if (!Wifi) { return; }
 
                     return (
                         <box>
-                            <icon icon={bind(Wifi, 'iconName')} />
+                            {/* Make sure the AP is there before binding to it */}
+                            {bind(Wifi, 'accessPoints').as((aps) => aps.length !== 0 && (
+                                <>
+                                    <icon icon={bind(Wifi, 'iconName')} />
 
-                            <revealer
-                                revealChild={bind(Hovered)}
-                                transitionType={Gtk.RevealerTransitionType.SLIDE_LEFT}
-                            >
-                                {bind(Wifi, 'activeAccessPoint').as((ap) => (
-                                    <label label={bind(ap, 'ssid')} />
-                                ))}
-                            </revealer>
+                                    <revealer
+                                        revealChild={bind(Hovered)}
+                                        transitionType={Gtk.RevealerTransitionType.SLIDE_LEFT}
+                                    >
+                                        {bind(Wifi, 'activeAccessPoint').as((ap) => ap && (
+                                            <label label={bind(ap, 'ssid')} />
+                                        ))}
+                                    </revealer>
+                                </>
+                            ))}
                         </box>
                     );
                 }
                 else {
-                    const Wired = Network.get_wired();
+                    const Wired = network.get_wired();
 
                     if (!Wired) { return; }