diff --git a/package/opkg/Makefile b/package/opkg/Makefile
index c18f8e731930a208a15f8dc8504eb35bd32aadbd..442f90cd1af83fd38212dd1f273b295b034264ec 100644
--- a/package/opkg/Makefile
+++ b/package/opkg/Makefile
@@ -18,7 +18,9 @@ PKG_SOURCE_SUBDIR:=opkg-$(PKG_VERSION)
 PKG_SOURCE_URL:=http://opkg.googlecode.com/svn/trunk/
 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
 PKG_FIXUP = libtool
+
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
 
 define Package/opkg
   SECTION:=base
@@ -79,4 +81,27 @@ define Build/InstallDev
 	$(CP) $(PKG_INSTALL_DIR)/usr/include/libopkg $(1)/usr/include/
 endef
 
+
+HOST_BUILD_DEPENDS:=libtool/host
+
+HOST_CONFIGURE_ARGS+= \
+	--disable-curl \
+	--disable-gpg \
+	--with-opkgetcdir=/etc \
+	--with-opkglockfile=/tmp/opkg.lock
+
+define Host/Configure
+	(cd $(HOST_BUILD_DIR); autoreconf -v --install || exit 1)
+	$(call Host/Configure/Default)
+endef
+
+define Host/Compile
+	$(MAKE) -C $(HOST_BUILD_DIR) CC="$(HOSTCC)" all
+endef
+
+define Host/Install
+	$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/opkg-cl $(STAGING_DIR_HOST)/bin/opkg
+endef
+
 $(eval $(call BuildPackage,opkg))
+$(eval $(call HostBuild))