diff --git a/media-sound/alsa-utils/Manifest b/media-sound/alsa-utils/Manifest
index 0d6a6cf..2c7456f 100644
--- a/media-sound/alsa-utils/Manifest
+++ b/media-sound/alsa-utils/Manifest
@@ -1 +1 @@
-DIST alsa-utils-1.0.28.tar.bz2 1146887 SHA256 f3ff4c89b0125a7797b1b13cd094cc92276e655458274967386e812d03642acc SHA512 faa5abf3f066106c80d019944efa2298e2d3157469c1c7bc52deb9aa1bcd5f5439a2e22b04ad9210e292fcef97bdacc27aa75fc275d0d7cae2c2f88729c84786 WHIRLPOOL d58587d9f302f3f1a7ab4de45c3889ce82e5be782e4aa9a953c39a908a4693e99c8ea9aeeb5669f0f606d980983beb7d5fc53e4c76ce1bb76500c7c2bcb45013
+DIST alsa-utils-1.1.0.tar.bz2 1181085 SHA256 3b1c3135b76e14532d3dd23fb15759ddd7daf9ffbc183f7a9a0a3a86374748f1 SHA512 c61f056959feba015bb4a6f49980c4beb6a0c34be09e7196864583897ea86373b593a8807999a07df9c87a3a0c714075b9aae516752e83a946d0d60bc8f90f98 WHIRLPOOL 50d8e1506fb9f969b3dfcd618933efbeda6f938c3350eccf99526fb8329afd1ea4381ff1a548590f0f9bae12bdb63c1e8ab068641743d52b3ba609eae2d337e5
diff --git a/media-sound/alsa-utils/alsa-utils-1.0.28-r1.ebuild b/media-sound/alsa-utils/alsa-utils-1.1.0.ebuild
similarity index 83%
rename from media-sound/alsa-utils/alsa-utils-1.0.28-r1.ebuild
rename to media-sound/alsa-utils/alsa-utils-1.1.0.ebuild
index d2c3726..5ac6bce 100644
--- a/media-sound/alsa-utils/alsa-utils-1.0.28-r1.ebuild
+++ b/media-sound/alsa-utils/alsa-utils-1.1.0.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/alsa-utils-1.0.28-r1.ebuild,v 1.1 2014/11/19 19:16:08 vapier Exp $
+# $Id$
 
 EAPI=5
 inherit eutils systemd udev
@@ -12,11 +12,12 @@
 LICENSE="GPL-2"
 SLOT="0.9"
 KEYWORDS="*"
-IUSE="doc +libsamplerate +ncurses nls selinux"
+IUSE="bat doc +libsamplerate +ncurses nls selinux"
 
 CDEPEND=">=media-libs/alsa-lib-${PV}
 	libsamplerate? ( media-libs/libsamplerate )
-	ncurses? ( >=sys-libs/ncurses-5.7-r7 )"
+	ncurses? ( >=sys-libs/ncurses-5.7-r7:5= )
+	bat? ( sci-libs/fftw )"
 DEPEND="${CDEPEND}
 	virtual/pkgconfig
 	doc? ( app-text/xmlto )"
@@ -24,9 +25,6 @@
 	selinux? ( sec-policy/selinux-alsa )"
 
 src_prepare() {
-	epatch "${FILESDIR}"/${P}-aplay-return.patch
-	epatch "${FILESDIR}"/${P}-va-end.patch
-	epatch "${FILESDIR}"/${P}-{mixer,monitor}-proto.patch
 	epatch_user
 }
 
@@ -37,6 +35,7 @@
 	# --disable-alsaconf because it doesn't work with sys-apps/kmod wrt #456214
 	econf \
 		--disable-maintainer-mode \
+		$(use_enable bat) \
 		$(use_enable libsamplerate alsaloop) \
 		$(use_enable nls) \
 		$(use_enable ncurses alsamixer) \
diff --git a/media-sound/alsa-utils/files/alsa-utils-1.0.28-aplay-return.patch b/media-sound/alsa-utils/files/alsa-utils-1.0.28-aplay-return.patch
deleted file mode 100644
index e257888..0000000
--- a/media-sound/alsa-utils/files/alsa-utils-1.0.28-aplay-return.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-http://crbug.com/433899
-
-From 8f361d83cfcb39887f5fc591633e68d9448e3425 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Wed, 1 Oct 2014 15:43:57 +0200
-Subject: [PATCH [alsa-utils]] Revert "aplay: fix pcm_read() return value"
-
-This reverts commit 8aa13eec80eac312e4b99423909387660fb99b8f.
-
-The semantics for pcm_read() and pcm_readv() was changed, but the
-callers expect the exact frame count as requested. It's possible
-to fix callers, but the fix is more complicated than to revert the
-change. Note that '-d' processing was broken in some cases.
-
-Note: The reverted commit allows that the return value might be
-greater than requested (see the first condition in read routines).
----
- aplay/aplay.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/aplay/aplay.c b/aplay/aplay.c
-index 30d3f31..e58e1bc 100644
---- a/aplay/aplay.c
-+++ b/aplay/aplay.c
-@@ -2039,7 +2039,7 @@ static ssize_t pcm_read(u_char *data, size_t rcount)
- 			data += r * bits_per_frame / 8;
- 		}
- 	}
--	return result;
-+	return rcount;
- }
- 
- static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
-@@ -2084,7 +2084,7 @@ static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
- 			count -= r;
- 		}
- 	}
--	return result;
-+	return rcount;
- }
- 
- /*
--- 
-2.1.3
-
diff --git a/media-sound/alsa-utils/files/alsa-utils-1.0.28-mixer-proto.patch b/media-sound/alsa-utils/files/alsa-utils-1.0.28-mixer-proto.patch
deleted file mode 100644
index fdd26c3..0000000
--- a/media-sound/alsa-utils/files/alsa-utils-1.0.28-mixer-proto.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From c788ce9b6088e2c937f77231eab520c3d16e0c76 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Wed, 25 Jun 2014 10:49:23 +0200
-Subject: [PATCH [alsa-utils]] alsamixer: include missing mixer_controls.h
-
----
- alsamixer/mainloop.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/alsamixer/mainloop.c b/alsamixer/mainloop.c
-index 351f57f..79d81a9 100644
---- a/alsamixer/mainloop.c
-+++ b/alsamixer/mainloop.c
-@@ -29,6 +29,7 @@
- #include "widget.h"
- #include "mixer_widget.h"
- #include "mixer_display.h"
-+#include "mixer_controls.h"
- #include "mainloop.h"
- 
- static WINDOW *curses_initialized;
--- 
-2.1.3
-
diff --git a/media-sound/alsa-utils/files/alsa-utils-1.0.28-monitor-proto.patch b/media-sound/alsa-utils/files/alsa-utils-1.0.28-monitor-proto.patch
deleted file mode 100644
index 55d93f8..0000000
--- a/media-sound/alsa-utils/files/alsa-utils-1.0.28-monitor-proto.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 74e5d57c999f8afed4f87046dcac84f6709b9196 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Wed, 24 Sep 2014 10:46:02 +0200
-Subject: [PATCH [alsa-utils]] alsactl: aded missing monitor() prototype
-
----
- alsactl/alsactl.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/alsactl/alsactl.h b/alsactl/alsactl.h
-index bd9bf23..4f969ec 100644
---- a/alsactl/alsactl.h
-+++ b/alsactl/alsactl.h
-@@ -31,6 +31,7 @@ int save_state(const char *file, const char *cardname);
- int load_state(const char *file, const char *initfile, const char *cardname,
- 	       int do_init);
- int power(const char *argv[], int argc);
-+int monitor(const char *name);
- int state_daemon(const char *file, const char *cardname, int period,
- 		 const char *pidfile);
- int state_daemon_kill(const char *pidfile, const char *cmd);
--- 
-2.1.3
-
diff --git a/media-sound/alsa-utils/files/alsa-utils-1.0.28-va-end.patch b/media-sound/alsa-utils/files/alsa-utils-1.0.28-va-end.patch
deleted file mode 100644
index a4153bd..0000000
--- a/media-sound/alsa-utils/files/alsa-utils-1.0.28-va-end.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 89a4f490bd974e454d82942100f241bb1a2270f3 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Wed, 24 Sep 2014 10:52:17 +0200
-Subject: [PATCH [alsa-utils]] =?UTF-8?q?alsactl:=20coverity=20-=20missing?=
- =?UTF-8?q?=5Fva=5Fend=20=E2=80=93=20va=5Fend=20was=20not=20called=20for?=
- =?UTF-8?q?=20"ap"?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
----
- alsactl/utils.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/alsactl/utils.c b/alsactl/utils.c
-index b5d183c..304df7c 100644
---- a/alsactl/utils.c
-+++ b/alsactl/utils.c
-@@ -157,8 +157,8 @@ void cerror_(const char *fcn, long line, int cond, const char *fmt, ...)
- 		fprintf(stderr, "%s: %s:%ld: ", command, fcn, line);
- 		vfprintf(stderr, fmt, ap);
- 		putc('\n', stderr);
--		va_end(ap);
- 	}
-+	va_end(ap);
- }
- 
- void dbg_(const char *fcn, long line, const char *fmt, ...)
-@@ -174,6 +174,6 @@ void dbg_(const char *fcn, long line, const char *fmt, ...)
- 		fprintf(stderr, "%s: %s:%ld: ", command, fcn, line);
- 		vfprintf(stderr, fmt, ap);
- 		putc('\n', stderr);
--		va_end(ap);
- 	}
-+	va_end(ap);
- }
--- 
-2.1.3
-
diff --git a/media-sound/alsa-utils/files/alsasound.initd-r5 b/media-sound/alsa-utils/files/alsasound.initd-r5
deleted file mode 100644
index e3c8dd9..0000000
--- a/media-sound/alsa-utils/files/alsasound.initd-r5
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/sbin/runscript
-# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/files/alsasound.initd-r5,v 1.1 2012/02/20 09:03:53 chainsaw Exp $
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-alsastatedir=/var/lib/alsa
-alsascrdir=/etc/alsa.d
-
-extra_commands="save restore"
-
-depend() {
-	need localmount
-	after bootmisc modules isapnp coldplug hotplug
-}
-
-restore() {
-	ebegin "Restoring Mixer Levels"
-
-	if [ ! -r "${alsastatedir}/asound.state" ] ; then
-		ewarn "No mixer config in ${alsastatedir}/asound.state, you have to unmute your card!"
-		eend 0
-		return 0
-	fi
-
-	local cards="$(sed -n -e 's/ *\([[:digit:]]*\) .*/\1/p' /proc/asound/cards)"
-	local CARDNUM
-	for cardnum in ${cards}; do
-		[ -e /dev/snd/controlC${cardnum} ] || sleep 2
-		[ -e /dev/snd/controlC${cardnum} ] || sleep 2
-		[ -e /dev/snd/controlC${cardnum} ] || sleep 2
-		[ -e /dev/snd/controlC${cardnum} ] || sleep 2
-		alsactl -I -f "${alsastatedir}/asound.state" restore ${cardnum} \
-			|| ewarn "Errors while restoring defaults, ignoring"
-	done
-
-	for ossfile in "${alsastatedir}"/oss/card*_pcm* ; do
-		[ -e "${ossfile}" ] || continue
-		# We use cat because I'm not sure if cp works properly on /proc
-		local procfile=${ossfile##${alsastatedir}/oss}
-		procfile="$(echo "${procfile}" | sed -e 's,_,/,g')"
-		if [ -e /proc/asound/"${procfile}"/oss ] ; then
-		    cat "${ossfile}" > /proc/asound/"${procfile}"/oss 
-		fi
-	done
-
-	eend 0
-}
-
-save() {
-	ebegin "Storing ALSA Mixer Levels"
-
-	mkdir -p "${alsastatedir}"
-	if ! alsactl -f "${alsastatedir}/asound.state" store; then
-		eerror "Error saving levels."
-		eend 1
-		return 1
-	fi
-
-	for ossfile in /proc/asound/card*/pcm*/oss; do
-		[ -e "${ossfile}" ] || continue
-		local device=${ossfile##/proc/asound/} ; device=${device%%/oss}
-		device="$(echo "${device}" | sed -e 's,/,_,g')"
-		mkdir -p "${alsastatedir}/oss/"
-		cp "${ossfile}" "${alsastatedir}/oss/${device}"
-	done
-
-	eend 0
-}
-
-start() {
-	if [ "${RESTORE_ON_START}" = "yes" ]; then
-		restore
-	fi
-
-	return 0
-}
-
-stop() {
-	if [ "${SAVE_ON_STOP}" = "yes" ]; then
-		save
-	fi
-	return 0
-}
diff --git a/media-sound/alsa-utils/files/alsasound.initd-r6 b/media-sound/alsa-utils/files/alsasound.initd-r6
index 2eddfd3..6a3196f 100644
--- a/media-sound/alsa-utils/files/alsasound.initd-r6
+++ b/media-sound/alsa-utils/files/alsasound.initd-r6
@@ -1,5 +1,5 @@
 #!/sbin/runscript
-# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/files/alsasound.initd-r6,v 1.1 2014/06/23 21:34:42 ssuominen Exp $
+# $Id$
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
diff --git a/media-sound/alsa-utils/metadata.xml b/media-sound/alsa-utils/metadata.xml
index 8553be1..1285918 100644
--- a/media-sound/alsa-utils/metadata.xml
+++ b/media-sound/alsa-utils/metadata.xml
@@ -6,7 +6,8 @@
     <email>alsa-bugs@gentoo.org</email>
   </maintainer>
   <use>
-    <flag name='libsamplerate'>install utils that use libsamplerate (e.g. alsaloop)</flag>
-    <flag name='ncurses'>install utils that use ncurses (e.g. alsamixer)</flag>
+    <flag name="bat">install basic audio tester (BAT) util</flag>
+    <flag name="libsamplerate">install utils that use libsamplerate (e.g. alsaloop)</flag>
+    <flag name="ncurses">install utils that use ncurses (e.g. alsamixer)</flag>
   </use>
 </pkgmetadata>
diff --git a/metadata/md5-cache/media-sound/alsa-utils-1.0.28-r1 b/metadata/md5-cache/media-sound/alsa-utils-1.0.28-r1
deleted file mode 100644
index e71fbe5..0000000
--- a/metadata/md5-cache/media-sound/alsa-utils-1.0.28-r1
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=configure install postinst prepare
-DEPEND=>=media-libs/alsa-lib-1.0.28 libsamplerate? ( media-libs/libsamplerate ) ncurses? ( >=sys-libs/ncurses-5.7-r7 ) virtual/pkgconfig doc? ( app-text/xmlto ) virtual/pkgconfig virtual/pkgconfig
-DESCRIPTION=Advanced Linux Sound Architecture Utils (alsactl, alsamixer, etc.)
-EAPI=5
-HOMEPAGE=http://www.alsa-project.org/
-IUSE=doc +libsamplerate +ncurses nls selinux
-KEYWORDS=*
-LICENSE=GPL-2
-RDEPEND=>=media-libs/alsa-lib-1.0.28 libsamplerate? ( media-libs/libsamplerate ) ncurses? ( >=sys-libs/ncurses-5.7-r7 ) selinux? ( sec-policy/selinux-alsa )
-SLOT=0.9
-SRC_URI=mirror://alsaproject/utils/alsa-utils-1.0.28.tar.bz2
-_eclasses_=eutils	06133990e861be0fe60c2b428fd025d9	multilib	3bf24e6abb9b76d9f6c20600f0b716bf	systemd	9f063b2cc19c5e8030911372aa246c4e	toolchain-funcs	48b38a216afb92db6314d6c3187abea3	udev	a9a8d051efb42bfe884c1db82ce161de
-_md5_=a15693b96ee5fad6ab25e7ee51aea070
diff --git a/metadata/md5-cache/media-sound/alsa-utils-1.1.0 b/metadata/md5-cache/media-sound/alsa-utils-1.1.0
new file mode 100644
index 0000000..46bfe36
--- /dev/null
+++ b/metadata/md5-cache/media-sound/alsa-utils-1.1.0
@@ -0,0 +1,13 @@
+DEFINED_PHASES=configure install postinst prepare
+DEPEND=>=media-libs/alsa-lib-1.1.0 libsamplerate? ( media-libs/libsamplerate ) ncurses? ( >=sys-libs/ncurses-5.7-r7:0= ) bat? ( sci-libs/fftw ) virtual/pkgconfig doc? ( app-text/xmlto ) virtual/pkgconfig virtual/pkgconfig
+DESCRIPTION=Advanced Linux Sound Architecture Utils (alsactl, alsamixer, etc.)
+EAPI=5
+HOMEPAGE=http://www.alsa-project.org/
+IUSE=bat doc +libsamplerate +ncurses nls selinux
+KEYWORDS=*
+LICENSE=GPL-2
+RDEPEND=>=media-libs/alsa-lib-1.1.0 libsamplerate? ( media-libs/libsamplerate ) ncurses? ( >=sys-libs/ncurses-5.7-r7:0= ) bat? ( sci-libs/fftw ) selinux? ( sec-policy/selinux-alsa )
+SLOT=0.9
+SRC_URI=mirror://alsaproject/utils/alsa-utils-1.1.0.tar.bz2
+_eclasses_=eutils	06133990e861be0fe60c2b428fd025d9	multilib	3bf24e6abb9b76d9f6c20600f0b716bf	systemd	9f063b2cc19c5e8030911372aa246c4e	toolchain-funcs	48b38a216afb92db6314d6c3187abea3	udev	a9a8d051efb42bfe884c1db82ce161de
+_md5_=c83e413c870017066e52ab4a46756642
