diff --git a/include/target.mk b/include/target.mk
index 34d2935fe8333a65e18166a67e3cd4163d38ccb1..357bb1f30dfe58e268609142cca12878f2938688 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -12,7 +12,7 @@ __target_inc=1
 DEVICE_TYPE?=router
 
 # Default packages - the really basic set
-DEFAULT_PACKAGES:=base-files libgcc uclibc busybox dropbear mtd uci
+DEFAULT_PACKAGES:=base-files libgcc uclibc busybox dropbear mtd uci opkg
 # For router targets
 DEFAULT_PACKAGES.router:=dnsmasq iptables ppp ppp-mod-pppoe kmod-ipt-nathelper bridge firewall
 
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 231647e98bc07fe5ca33f8cabbb25eb1b9e11162..9f745aa173d682efb34d71c653f003f951b07b9a 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -53,7 +53,6 @@ define Package/base-files$(TARGET)/conffiles
 /etc/passwd
 /etc/profile
 /etc/shells
-/etc/ipkg.conf
 /etc/sysctl.conf
 $(call $(TARGET)/conffiles)
 endef
@@ -149,7 +148,6 @@ define Package/base-files$(TARGET)/install
 	)
 	$(if $(CONFIG_BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS),cp $(1)/etc/passwd $(1)/etc/shadow)
 	$(SED) 's,$$$$R,$(REVISION),g' $(1)/etc/banner
-	$(SED) 's,$$$$S,$(BOARD),g' -e 's,$$$$A,$(ARCH),g' $(1)/etc/ipkg.conf
 	mkdir -p $(1)/dev
 	mkdir -p $(1)/etc/crontabs
 	mkdir -p $(1)/jffs
diff --git a/package/base-files/files/bin/firstboot b/package/base-files/files/bin/firstboot
index ad87f7482e52623fd0f77aa5b7cf87cd84db77f7..c245d517c2d49a5094647945c3432e0899b373fc 100755
--- a/package/base-files/files/bin/firstboot
+++ b/package/base-files/files/bin/firstboot
@@ -25,7 +25,7 @@ dupe() { # <new_root> <old_root>
 		case "$file" in
 		./rom/note) ;; #nothing
 		./etc/config*|\
-		./usr/lib/ipkg/info/*) cp -af $2/$file $file;;
+		./usr/lib/opkg/info/*) cp -af $2/$file $file;;
 		*) ln -sf /rom/${file#./*} $file;;
 		esac
 	done
diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in
index 4350076b960078a1e7f62b8bcbc85ed5465f7b93..0cfbbcc3da3c0f52c022decfa41c4f3b669b930b 100644
--- a/package/busybox/config/archival/Config.in
+++ b/package/busybox/config/archival/Config.in
@@ -133,7 +133,7 @@ config BUSYBOX_CONFIG_GZIP
 
 config BUSYBOX_CONFIG_IPKG
 	bool "ipkg"
-	default y
+	default n
 	select BUSYBOX_CONFIG_MD5SUM
 	select BUSYBOX_CONFIG_WGET
 	select BUSYBOX_CONFIG_DIFF
diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile
index bbea72fee4420909715edfe86b2593844e02127a..96eb5911d7a266d87ebceb853e6d09c47472bad5 100644
--- a/package/dropbear/Makefile
+++ b/package/dropbear/Makefile
@@ -88,9 +88,9 @@ define Package/dropbear/install
 	$(INSTALL_DATA) ./files/dropbear.config $(1)/etc/config/dropbear
 	$(INSTALL_DIR) $(1)/etc/init.d
 	$(INSTALL_BIN) ./files/dropbear.init $(1)/etc/init.d/dropbear
-	$(INSTALL_DIR) $(1)/usr/lib/ipkg/info
-	echo /etc/dropbear/dropbear_rsa_host_key > $(1)/usr/lib/ipkg/info/dropbear.conffiles
-	echo /etc/dropbear/dropbear_dss_host_key >> $(1)/usr/lib/ipkg/info/dropbear.conffiles
+	$(INSTALL_DIR) $(1)/usr/lib/opkg/info
+	echo /etc/dropbear/dropbear_rsa_host_key > $(1)/usr/lib/opkg/info/dropbear.conffiles
+	echo /etc/dropbear/dropbear_dss_host_key >> $(1)/usr/lib/opkg/info/dropbear.conffiles
 endef
 
 define Package/dropbearconvert/install
diff --git a/package/opkg/Makefile b/package/opkg/Makefile
index 97971b3af5f075d3c7e3691d82d1befb7d3820d6..67de0bcb6d7b8158f519f4e9cd1647c02bb344e5 100644
--- a/package/opkg/Makefile
+++ b/package/opkg/Makefile
@@ -36,6 +36,10 @@ define Package/opkg/description
   opkg knows how to install both .ipk and .deb packages.
 endef
 
+define Package/opkg/conffiles
+/etc/opkg.conf
+endef
+
 TARGET_CFLAGS += $(FPIC)
 EXTRA_CFLAGS+=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/lib
 EXTRA_LDFLAGS+=-L$(STAGING_DIR)/usr/lib -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
@@ -59,8 +63,12 @@ define Build/Compile
 endef
 
 define Package/opkg/install
-	$(INSTALL_BIN) ./files/postinst $(1)/CONTROL/postinst
+	$(INSTALL_DIR) $(1)/usr/lib/opkg
 	$(INSTALL_DIR) $(1)/bin
+	$(INSTALL_DIR) $(1)/etc
+	$(INSTALL_DATA) ./files/opkg.conf $(1)/etc/
+	$(SED) 's,$$$$S,$(BOARD),g' -e 's,$$$$A,$(ARCH),g' $(1)/etc/opkg.conf
+	$(SED) 's,$$$$S,$(BOARD),g' $(1)/etc/opkg.conf
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg
 	$(INSTALL_DIR) $(1)/usr/lib
 	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libopkg.so.* $(1)/usr/lib/
diff --git a/package/base-files/files/etc/ipkg.conf b/package/opkg/files/opkg.conf
similarity index 75%
rename from package/base-files/files/etc/ipkg.conf
rename to package/opkg/files/opkg.conf
index c6c9dc717be9331459b64615d4602d26993ef847..f7f96fe2b6f73f6f553072d0fcbcf1d66fc44815 100644
--- a/package/base-files/files/etc/ipkg.conf
+++ b/package/opkg/files/opkg.conf
@@ -1,4 +1,4 @@
 src snapshots http://downloads.openwrt.org/snapshots/$S/packages
 dest root /
 dest ram /tmp
-lists_dir ext /var/ipkg-lists
+lists_dir ext /var/opkg-lists
diff --git a/package/opkg/files/postinst b/package/opkg/files/postinst
deleted file mode 100644
index c2bb38187d6ab599a655c0afbb7f803a44cf0535..0000000000000000000000000000000000000000
--- a/package/opkg/files/postinst
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-ln -sf "/usr/lib/ipkg" "${IPKG_INSTROOT}/usr/lib/opkg"
-ln -sf "/etc/ipkg.conf" "${IPKG_INSTROOT}/etc/opkg.conf"
diff --git a/scripts/ipkg b/scripts/ipkg
index 311f3abdb5ffdc911b05adffb5aa1187cbdb0b34..9143c984edc679ccb345d9c27a72212093012971 100755
--- a/scripts/ipkg
+++ b/scripts/ipkg
@@ -116,7 +116,7 @@ Valid destinations are directories or one of the dest names from $IPKG_CONF:" >&
 	fi
 
 	# Global ipkg state directories
-	IPKG_DIR_PREFIX=usr/lib/ipkg
+	IPKG_DIR_PREFIX=usr/lib/opkg
 	IPKG_LISTS_DIR=$IPKG_OFFLINE_ROOT/$IPKG_DIR_PREFIX/lists
 	IPKG_PENDING_DIR=$IPKG_OFFLINE_ROOT/$IPKG_DIR_PREFIX/pending
 	if [ -z "$IPKG_TMP" ]; then