diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile
index 4da4d468370dbea69957fae0eaf6f784c192e5fc..7401893a8a7f2255a4666a45c626e0599fb081e6 100644
--- a/package/system/opkg/Makefile
+++ b/package/system/opkg/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/feeds.mk
 PKG_NAME:=opkg
 PKG_REV:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d
 PKG_VERSION:=$(PKG_REV)
-PKG_RELEASE:=8
+PKG_RELEASE:=9
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=$(PKG_REV)
@@ -26,6 +26,8 @@ PKG_REMOVE_FILES = autogen.sh aclocal.m4
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
+PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
+
 PKG_CONFIG_DEPENDS := CONFIG_SIGNED_PACKAGES
 
 PKG_BUILD_PARALLEL:=1
@@ -39,7 +41,6 @@ define Package/opkg/Default
   SECTION:=base
   CATEGORY:=Base system
   TITLE:=opkg package manager
-  MAINTAINER:=Jo-Philipp Wich <xm@subsignal.org>
   URL:=http://wiki.openmoko.org/wiki/Opkg
 endef
 
diff --git a/package/system/opkg/patches/250-add-lists-dir-switch.patch b/package/system/opkg/patches/250-add-lists-dir-switch.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d0d0707836e4dece3dfb33a8cea2d70d4238294d
--- /dev/null
+++ b/package/system/opkg/patches/250-add-lists-dir-switch.patch
@@ -0,0 +1,39 @@
+--- a/src/opkg-cl.c
++++ b/src/opkg-cl.c
+@@ -101,6 +101,8 @@ static struct option long_options[] = {
+ 	{"test", 0, 0, ARGS_OPT_NOACTION},
+ 	{"tmp-dir", 1, 0, 't'},
+ 	{"tmp_dir", 1, 0, 't'},
++	{"lists-dir", 1, 0, 'l'},
++	{"lists_dir", 1, 0, 'l'},
+ 	{"verbosity", 2, 0, 'V'},
+ 	{"version", 0, 0, 'v'},
+ 	{0, 0, 0, 0}
+@@ -115,7 +117,7 @@ args_parse(int argc, char *argv[])
+ 	char *tuple, *targ;
+ 
+ 	while (1) {
+-		c = getopt_long_only(argc, argv, "Ad:f:ino:p:t:vV::",
++		c = getopt_long_only(argc, argv, "Ad:f:ino:p:l:t:vV::",
+ 				long_options, &option_index);
+ 		if (c == -1)
+ 			break;
+@@ -139,6 +141,9 @@ args_parse(int argc, char *argv[])
+ 		case 't':
+ 			conf->tmp_dir = xstrdup(optarg);
+ 			break;
++		case 'l':
++			conf->lists_dir = xstrdup(optarg);
++			break;
+ 		case 'v':
+ 			printf("opkg version %s\n", VERSION);
+ 			exit(0);
+@@ -316,6 +321,8 @@ usage()
+ 	printf("\t			automatically to satisfy dependencies\n");
+ 	printf("\t-t			Specify tmp-dir.\n");
+ 	printf("\t--tmp-dir		Specify tmp-dir.\n");
++	printf("\t-l			Specify lists-dir.\n");
++	printf("\t--lists-dir		Specify lists-dir.\n");
+ 
+ 	printf("\n");
+