diff --git a/Makefile.dep b/Makefile.dep
index c44dd293fdb929a6581e24ef4826ae3b6e03c24c..33451cf3f59660d0bf5c0f3520bfb558d1f35471 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -45,6 +45,10 @@ ifneq (,$(filter gnrc_uhcpc,$(USEMODULE)))
   USEMODULE += fmt
 endif
 
+ifneq (,$(filter uhcpc,$(USEMODULE)))
+  USEMODULE += posix
+endif
+
 ifneq (,$(filter nordic_softdevice_ble,$(USEPKG)))
   USEMODULE += softdevice_handler
   USEMODULE += ble_common
diff --git a/sys/net/gnrc/application_layer/uhcpc/gnrc_uhcpc.c b/sys/net/gnrc/application_layer/uhcpc/gnrc_uhcpc.c
index a881adc2212d0cf7c00672a8d97423f129f41e73..ffe594e22d486d7514ada8022629c4513b9dfcb5 100644
--- a/sys/net/gnrc/application_layer/uhcpc/gnrc_uhcpc.c
+++ b/sys/net/gnrc/application_layer/uhcpc/gnrc_uhcpc.c
@@ -32,18 +32,21 @@ static void set_interface_roles(void)
         kernel_pid_t dev = ifs[i];
         int is_wired = gnrc_netapi_get(dev, NETOPT_IS_WIRED, 0, NULL, 0);
         if ((!gnrc_border_interface) && (is_wired == 1)) {
-            ipv6_addr_t addr, defroute;
+            ipv6_addr_t addr;
             gnrc_border_interface = dev;
 
             ipv6_addr_from_str(&addr, "fe80::2");
             gnrc_ipv6_netif_add_addr(dev, &addr, 64,
                                      GNRC_IPV6_NETIF_ADDR_FLAGS_UNICAST);
 
-            ipv6_addr_from_str(&defroute, "::");
+#ifdef MODULE_FIB
+            ipv6_addr_t defroute = IPV6_ADDR_UNSPECIFIED;
+
             ipv6_addr_from_str(&addr, "fe80::1");
             fib_add_entry(&gnrc_ipv6_fib_table, dev, defroute.u8, 16,
                     0x00, addr.u8, 16, 0,
                     (uint32_t)FIB_LIFETIME_NO_EXPIRE);
+#endif
         }
         else if ((!gnrc_wireless_interface) && (is_wired != 1)) {
             gnrc_wireless_interface = dev;