diff --git a/package/network/utils/curl/Config.in b/package/network/utils/curl/Config.in
index 87e5f99f577d83c62087c7b9009b40ed1e904c88..11cfa39e95d0139217c8ad6c6cc4b9431cd155d4 100644
--- a/package/network/utils/curl/Config.in
+++ b/package/network/utils/curl/Config.in
@@ -1,111 +1,154 @@
 if PACKAGE_libcurl
 
+comment "SSL support"
+
 choice
-	prompt "SSL library"
+	prompt "Selected SSL library"
 	default LIBCURL_POLARSSL
 
-config LIBCURL_POLARSSL
-	bool "PolarSSL"
+	config LIBCURL_POLARSSL
+		bool "PolarSSL"
 
-config LIBCURL_CYASSL
-	bool "CyaSSL"
+	config LIBCURL_CYASSL
+		bool "CyaSSL"
 
-config LIBCURL_AXTLS
-	bool "axTLS"
+	config LIBCURL_AXTLS
+		bool "axTLS"
 
-config LIBCURL_OPENSSL
-	bool "OpenSSL"
+	config LIBCURL_OPENSSL
+		bool "OpenSSL"
 
-config LIBCURL_GNUTLS
-	bool "GNUTLS"
+	config LIBCURL_GNUTLS
+		bool "GNUTLS"
 
-config LIBCURL_NOSSL
-	bool "No SSL support"
+	config LIBCURL_NOSSL
+		bool "No SSL support"
 
 endchoice
 
-config LIBCURL_COOKIES
-	bool "Enable cookies support"
-	default y
-
-config LIBCURL_CRYPTO_AUTH
-	bool "Enable cryptographic authentication"
-	default n
+comment "Supported protocols"
 
 config LIBCURL_DICT
-	bool "Enable DICT support"
+	bool "DICT protocol"
 	default n
 
 config LIBCURL_FILE
-	bool "Enable FILE support"
+	bool "FILE protocol"
 	default y
 
 config LIBCURL_FTP
-	bool "Enable FTP support"
+	bool "FTP / FTPS protocol"
 	default y
 
 config LIBCURL_GOPHER
-	bool "Enable Gopher support"
+	bool "Gopher protocol"
 	default n
 
 config LIBCURL_HTTP
-	bool "Enable HTTP support"
+	bool "HTTP / HTTPS protocol"
+	default y
+
+config LIBCURL_COOKIES
+	bool "Enable Cookies support"
+	depends on LIBCURL_HTTP
 	default y
 
 config LIBCURL_IMAP
-	bool "Enable IMAP support"
+	bool "IMAP / IMAPS protocol"
 	default n
 
 config LIBCURL_LDAP
-	bool "Enable LDAP support"
+	bool "LDAP protocol"
 	default n
 
 config LIBCURL_LDAPS
 	bool "Enable LDAPS support"
+	depends on LIBCURL_LDAP && !LIBCURL_NOSSL
+	default y
+
+config LIBCURL_POP3
+	bool "POP3 / POP3S protocol"
 	default n
 
-config LIBCURL_LIBCURL_OPTION
-	bool "Enable --libcurl C code generation support"
+config LIBCURL_RTSP
+	bool "RTSP protocol"
+	depends on LIBCURL_HTTP
 	default n
+config LIBCURL_NO_RTSP
+	string "RTSP require HTTP protocol"
+	depends on !LIBCURL_HTTP
+	default "!"
 
-config LIBCURL_POP3
-	bool "Enable POP3 support"
+config LIBCURL_SSH2
+	bool "SCP / SFTP protocol"
+	default n
+
+config LIBCURL_SMB
+	bool "SMB protocol (CIFS)"
+	depends on LIBCURL_CRYPTO_AUTH && (LIBCURL_GNUTLS || LIBCURL_OPENSSL)
+	default n
+config LIBCURL_NO_SMB
+	string "SMB require 'cryptographic authentication' and either 'GnuTLS' or 'OpenSSL'"
+	depends on !LIBCURL_CRYPTO_AUTH || (!LIBCURL_GNUTLS && !LIBCURL_OPENSSL)
+	default "!"
+
+config LIBCURL_SMTP
+	bool "SMTP / SMTPS protocol"
 	default n
 
+config LIBCURL_TELNET
+	bool "TELNET protocol"
+	default n
+
+config LIBCURL_TFTP
+	bool "TFTP protocol"
+	default n
+
+comment "Miscellaneous"
+
 config LIBCURL_PROXY
 	bool "Enable proxy support"
 	default y
 
-config LIBCURL_RTSP
-	bool "Enable RTSP support"
+config LIBCURL_CRYPTO_AUTH
+	bool "Enable cryptographic authentication"
 	default n
 
-config LIBCURL_SMTP
-	bool "Enable SMTP support"
+config LIBCURL_TLS_SRP
+	bool "Enable TLS-SRP authentication"
 	default n
 
-config LIBCURL_SSPI
-	bool "Enable SSPI"
+config LIBCURL_LIBIDN
+	bool "Enable IDN support"
 	default n
 
-config LIBCURL_TELNET
-	bool "Enable TELNET support"
+config LIBCURL_THREADED_RESOLVER
+	bool "Enable threaded DNS resolver"
 	default n
+	help
+		Enable POSIX threaded asynchronous DNS resolution
 
-config LIBCURL_TFTP
-	bool "Enable TFTP support"
+config LIBCURL_ZLIB
+	bool "Enable zlib support"
 	default n
 
-config LIBCURL_THREADED_RESOLVER
-	bool "Enable threaded resolver"
+config LIBCURL_UNIX_SOCKETS
+	bool "Enable unix domain socket support"
 	default n
+	help
+		Enable HTTP over unix domain sockets.
+		To use this with the curl command line, you specify the socket path to the new --unix-domain option.
+		This feature is actually not limited to HTTP, you can do all the TCP-based protocols 
+		except FTP over the unix domain socket, but it is only HTTP that is regularly used this way. 
+		The reason FTP isn't supported is of course its use of two connections 
+		which would be even weirder to do like this.
 
-config LIBCURL_TLS-SRP
-	bool "Enable TLS-SRP authentication"
+config LIBCURL_LIBCURL_OPTION
+	bool "Enable generation of C code"
 	default n
 
-config LIBCURL_ZLIB
-	bool "Use zlib"
+config LIBCURL_VERBOSE
+	bool "Enable verbose error strings"
 	default n
 
 endif
diff --git a/package/network/utils/curl/Makefile b/package/network/utils/curl/Makefile
index 7274e2cb1180b2ebda946851c45608251c447e4d..6da3a66a02177c7beef7d352cbd8e93708a401af 100644
--- a/package/network/utils/curl/Makefile
+++ b/package/network/utils/curl/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=curl
 PKG_VERSION:=7.40.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://curl.haxx.se/download/ \
@@ -26,34 +26,45 @@ PKG_LICENSE_FILES:=COPYING
 PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1
 
-PKG_CONFIG_DEPENDS := \
+PKG_CONFIG_DEPENDS:= \
+  CONFIG_IPV6 \
+  \
   LIBCURL_AXTLS \
-  LIBCURL_COOKIES \
-  LIBCURL_CRYPTO_AUTH \
   LIBCURL_CYASSL \
+  LIBCURL_GNUTLS \
+  LIBCURL_OPENSSL \
+  LIBCURL_POLARSSL \
+  LIBCURL_NOSSL \
+  \
+  LIBCURL_LIBIDN \
+  LIBCURL_SSH2 \
+  LIBCURL_ZLIB \
+  \
   LIBCURL_DICT \
   LIBCURL_FILE \
   LIBCURL_FTP \
-  LIBCURL_GNUTLS \
   LIBCURL_GOPHER \
   LIBCURL_HTTP \
   LIBCURL_IMAP \
   LIBCURL_LDAP \
   LIBCURL_LDAPS \
-  LIBCURL_LIBCURL_OPTION \
-  LIBCURL_NOSSL \
-  LIBCURL_OPENSSL \
-  LIBCURL_POLARSSL \
   LIBCURL_POP3 \
-  LIBCURL_PROXY \
   LIBCURL_RTSP \
+  LIBCURL_NO_RTSP \
+  LIBCURL_SMB \
+  LIBCURL_NO_SMB \
   LIBCURL_SMTP \
-  LIBCURL_SSPI \
   LIBCURL_TELNET \
   LIBCURL_TFTP \
+  \
+  LIBCURL_COOKIES \
+  LIBCURL_CRYPTO_AUTH \
+  LIBCURL_LIBCURL_OPTION \
+  LIBCURL_PROXY \
   LIBCURL_THREADED_RESOLVER \
-  LIBCURL_TLS-SRP \
-  LIBCURL_ZLIB
+  LIBCURL_TLS_SRP \
+  LIBCURL_UNIX_SOCKETS \
+  LIBCURL_VERBOSE \
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -75,8 +86,9 @@ define Package/libcurl
   $(call Package/curl/Default)
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+LIBCURL_POLARSSL:libpolarssl +LIBCURL_CYASSL:libcyassl +LIBCURL_AXTLS:libaxtls +LIBCURL_OPENSSL:libopenssl +LIBCURL_GNUTLS:libgnutls +LIBCURL_ZLIB:zlib +LIBCURL_THREADED_RESOLVER:libpthread
-  TITLE:=A client-side URL transfer library using $(if $(CONFIG_LIBCURL_POLARSSL),PolarSSL)$(if $(CONFIG_LIBCURL_OPENSSL),OpenSSL)$(if $(CONFIG_LIBCURL_GNUTLS),GNUTLS)$(if $(CONFIG_LIBCURL_NOSSL),no SSL)
+  DEPENDS:=+LIBCURL_POLARSSL:libpolarssl +LIBCURL_CYASSL:libcyassl +LIBCURL_AXTLS:libaxtls +LIBCURL_OPENSSL:libopenssl +LIBCURL_GNUTLS:libgnutls 
+  DEPENDS += +LIBCURL_ZLIB:zlib +LIBCURL_THREADED_RESOLVER:libpthread +LIBCURL_LDAP:libopenldap +LIBCURL_LIBIDN:libidn +LIBCURL_SSH2:libssh2
+  TITLE:=A client-side URL transfer library
   MENU:=1
 endef
 
@@ -88,47 +100,51 @@ endef
 TARGET_CFLAGS += $(FPIC)
 
 CONFIGURE_ARGS += \
+	--disable-debug \
+	--disable-ares \
 	--enable-shared \
 	--enable-static \
-	--disable-thread \
-	--enable-nonblocking \
-	--disable-ares \
-	--disable-debug \
 	--disable-manual \
-	--disable-verbose \
 	--without-ca-bundle \
-	$(if $(CONFIG_LIBCURL_NOSSL),,--with-ca-path=/etc/ssl/certs/) \
-	--without-krb4 \
-	--without-libidn \
 	--without-nss \
-	--without-libssh2 \
+	--without-libmetalink \
+	--without-librtmp \
+	\
 	$(call autoconf_bool,CONFIG_IPV6,ipv6) \
-	$(if $(CONFIG_LIBCURL_AXTLS),--with-axtls="$(STAGING_DIR)/usr",--without-axtls) \
-	$(if $(CONFIG_LIBCURL_COOKIES),--enable,--disable)-cookies \
-	$(if $(CONFIG_LIBCURL_CRYPTO_AUTH),--enable,--disable)-crypto-auth \
-	$(if $(CONFIG_LIBCURL_CYASSL),--with-cyassl="$(STAGING_DIR)/usr",--without-cyassl) \
-	$(if $(CONFIG_LIBCURL_DICT),--enable,--disable)-dict \
-	$(if $(CONFIG_LIBCURL_FILE),--enable,--disable)-file \
-	$(if $(CONFIG_LIBCURL_FTP),--enable,--disable)-ftp \
-	$(if $(CONFIG_LIBCURL_GOPHER),--enable,--disable)-gopher \
-	$(if $(CONFIG_LIBCURL_GNUTLS),--with-gnutls="$(STAGING_DIR)/usr",--without-gnutls) \
-	$(if $(CONFIG_LIBCURL_HTTP),--enable,--disable)-http \
-	$(if $(CONFIG_LIBCURL_IMAP),--enable,--disable)-imap \
-	$(if $(CONFIG_LIBCURL_LDAP),--enable,--disable)-ldap \
-	$(if $(CONFIG_LIBCURL_LDAPS),--enable,--disable)-ldaps \
-	$(if $(CONFIG_LIBCURL_LIBCURL_OPTION),--enable,--disable)-libcurl-option \
-	$(if $(CONFIG_LIBCURL_OPENSSL),--with-ssl="$(STAGING_DIR)/usr",--without-ssl) \
-	$(if $(CONFIG_LIBCURL_POLARSSL),--with-polarssl="$(STAGING_DIR)/usr",--without-polarssl) \
-	$(if $(CONFIG_LIBCURL_POP3),--enable,--disable)-pop3 \
-	$(if $(CONFIG_LIBCURL_PROXY),--enable,--disable)-proxy \
-	$(if $(CONFIG_LIBCURL_RTSP),--enable,--disable)-rtsp \
-	$(if $(CONFIG_LIBCURL_TELNET),--enable,--disable)-telnet \
-	$(if $(CONFIG_LIBCURL_TFTP),--enable,--disable)-tftp \
-	$(if $(CONFIG_LIBCURL_SMTP),--enable,--disable)-smtp \
-	$(if $(CONFIG_LIBCURL_SSPI),--enable,--disable)-sspi \
-	$(if $(CONFIG_LIBCURL_THREADED_RESOLVER),--enable,--disable)-threaded-resolver \
-	$(if $(CONFIG_LIBCURL_TLS-SRP),--enable,--disable)-tls-srp \
+	\
+	$(if $(CONFIG_LIBCURL_AXTLS),--with-axtls="$(STAGING_DIR)/usr" --without-ca-path,--without-axtls) \
+	$(if $(CONFIG_LIBCURL_CYASSL),--with-cyassl="$(STAGING_DIR)/usr" --without-ca-path,--without-cyassl) \
+	$(if $(CONFIG_LIBCURL_GNUTLS),--with-gnutls="$(STAGING_DIR)/usr" --without-ca-path,--without-gnutls) \
+	$(if $(CONFIG_LIBCURL_OPENSSL),--with-ssl="$(STAGING_DIR)/usr" --with-ca-path=/etc/ssl/certs,--without-ssl) \
+	$(if $(CONFIG_LIBCURL_POLARSSL),--with-polarssl="$(STAGING_DIR)/usr" --with-ca-path=/etc/ssl/certs,--without-polarssl) \
+	\
+	$(if $(CONFIG_LIBCURL_LIBIDN),--with-libidn="$(STAGING_DIR)/usr",--without-libidn) \
+	$(if $(CONFIG_LIBCURL_SSH2),--with-libssh2="$(STAGING_DIR)/usr",--without-libssh2) \
 	$(if $(CONFIG_LIBCURL_ZLIB),--with-zlib="$(STAGING_DIR)/usr",--without-zlib) \
+	\
+	$(call autoconf_bool,CONFIG_LIBCURL_DICT,dict) \
+	$(call autoconf_bool,CONFIG_LIBCURL_FILE,file) \
+	$(call autoconf_bool,CONFIG_LIBCURL_FTP,ftp) \
+	$(call autoconf_bool,CONFIG_LIBCURL_GOPHER,gopher) \
+	$(call autoconf_bool,CONFIG_LIBCURL_HTTP,http) \
+	$(call autoconf_bool,CONFIG_LIBCURL_IMAP,imap) \
+	$(call autoconf_bool,CONFIG_LIBCURL_LDAP,ldap) \
+	$(call autoconf_bool,CONFIG_LIBCURL_LDAPS,ldaps) \
+	$(call autoconf_bool,CONFIG_LIBCURL_POP3,pop3) \
+	$(call autoconf_bool,CONFIG_LIBCURL_RTSP,rtsp) \
+	$(call autoconf_bool,CONFIG_LIBCURL_SMB,smb) \
+	$(call autoconf_bool,CONFIG_LIBCURL_SMTP,smtp) \
+	$(call autoconf_bool,CONFIG_LIBCURL_TELNET,telnet) \
+	$(call autoconf_bool,CONFIG_LIBCURL_TFTP,tftp) \
+	\
+	$(call autoconf_bool,CONFIG_LIBCURL_COOKIES,cookies) \
+	$(call autoconf_bool,CONFIG_LIBCURL_CRYPTO_AUTH,crypto-auth) \
+	$(call autoconf_bool,CONFIG_LIBCURL_LIBCURL_OPTION,libcurl-option) \
+	$(call autoconf_bool,CONFIG_LIBCURL_PROXY,proxy) \
+	$(call autoconf_bool,CONFIG_LIBCURL_THREADED_RESOLVER,threaded-resolver) \
+	$(call autoconf_bool,CONFIG_LIBCURL_TLS_SRP,tls-srp) \
+	$(call autoconf_bool,CONFIG_LIBCURL_UNIX_SOCKETS,unix-sockets) \
+	$(call autoconf_bool,CONFIG_LIBCURL_VERBOSE,verbose) \
 
 define Build/Compile
 	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \