diff --git a/Makefile b/Makefile
index 4ab7b8b0120cd11d4300a824e43216d81a7e18a5..c9187f71690a5ebb202a74b20e3e3b44e8ddb71e 100644
--- a/Makefile
+++ b/Makefile
@@ -15,16 +15,19 @@ ${space} := ${space}
 
 prepare:
 	mkdir -p $(GLUON_IMAGEDIR) $(GLUON_BUILDDIR)
-	$(LN_S) $(GLUON_BUILDERDIR)/feeds.conf $(GLUON_OPENWRTDIR)/feeds.conf
 	echo 'src packages file:../openwrt/bin/$(BOARD)/packages' > $(GLUON_BUILDDIR)/opkg-$(BOARD).conf
 
+	$(LN_S) $(GLUON_BUILDERDIR)/feeds.conf $(GLUON_OPENWRTDIR)/feeds.conf
+	$(GLUON_OPENWRTDIR)/scripts/feeds uninstall -a
+	$(GLUON_OPENWRTDIR)/scripts/feeds update -a
+	$(GLUON_OPENWRTDIR)/scripts/feeds install -a
+
 	echo 'CONFIG_TARGET_$(BOARD)=y' > $(GLUON_OPENWRTDIR)/.config
 	echo -e "$(subst ${ },\n,$(patsubst %,CONFIG_PACKAGE_%=m,$(GLUON_PACKAGES)))" >> $(GLUON_OPENWRTDIR)/.config
-	$(MAKE) -C $(GLUON_OPENWRTDIR) defconfig package/symlinks prepare package/compile
+	$(MAKE) -C $(GLUON_OPENWRTDIR) defconfig prepare package/compile
 
 image-%: prepare
 	$(MAKE) -C $(GLUON_BUILDERDIR) image \
-		BIN_DIR=$(GLUON_IMAGEDIR) \
 		PACKAGE_DIR=$(GLUON_OPENWRTDIR)/bin/$(BOARD)/packages \
 		PROFILE=$(subst image-,,$@)