diff --git a/profiles/targets/chromeos/package.mask b/profiles/targets/chromeos/package.mask
index 50bc14b..d9a541e 100644
--- a/profiles/targets/chromeos/package.mask
+++ b/profiles/targets/chromeos/package.mask
@@ -59,8 +59,8 @@
 # Avoid using old known-vulnerable versions.  Upstream also installs the
 # plugin to a different place than where the chromeos-chrome ebuild expects
 # to find it, so ensure that we don't start using newer upstream versions.
-<www-plugins/adobe-flash-10.2.159.1
->www-plugins/adobe-flash-10.2.159.1
+<www-plugins/adobe-flash-10.3.181.26
+>www-plugins/adobe-flash-10.3.181.26
 
 # Masked old packages that had old ${PV} numbering scheme
 >=app-i18n/ibus-mozc-29
diff --git a/www-plugins/adobe-flash/adobe-flash-10.3.181.26.ebuild b/www-plugins/adobe-flash/adobe-flash-10.3.181.26.ebuild
new file mode 100644
index 0000000..8e8f86b
--- /dev/null
+++ b/www-plugins/adobe-flash/adobe-flash-10.3.181.26.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-plugins/adobe-flash/adobe-flash-10.2.159.1.ebuild,v 1.3 2011/04/20 19:08:42 angelos Exp $
+
+EAPI=1
+inherit nsplugins rpm multilib toolchain-funcs
+
+MY_32B_URI="http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-${PV}-release.i386.rpm"
+
+DESCRIPTION="Adobe Flash Player"
+SRC_URI="${MY_32B_URI}"
+HOMEPAGE="http://www.adobe.com/"
+IUSE="vdpau"
+SLOT="0"
+
+KEYWORDS="-* amd64 x86"
+LICENSE="AdobeFlash-10.1"
+RESTRICT="strip mirror"
+
+S="${WORKDIR}"
+
+# >glibc-2.4 dependency is removed to workaround bug in gmerge.
+# See http://crosbug.com/9991
+NATIVE_DEPS="x11-libs/gtk+:2
+	media-libs/fontconfig
+	dev-libs/nss
+	net-misc/curl
+	vdpau? ( x11-libs/libvdpau )"
+
+EMUL_DEPS="vdpau? ( >=app-emulation/emul-linux-x86-xlibs-20110129 )
+	>=app-emulation/emul-linux-x86-gtklibs-20100409-r1
+	app-emulation/emul-linux-x86-soundlibs"
+
+DEPEND="amd64? ( www-plugins/nspluginwrapper )"
+RDEPEND="x86? ( $NATIVE_DEPS )
+	amd64? ( $EMUL_DEPS )
+	|| ( media-fonts/liberation-fonts media-fonts/corefonts )
+	${DEPEND}"
+
+# Chromium expects that flash is installed to /opt/netscape/plugins.
+INSTALL_BASE="opt/netscape/plugins"
+
+# Ignore QA warnings in these binary closed-source libraries, since we can't fix
+# them:
+QA_EXECSTACK="${INSTALL_BASE}32/libflashplayer.so
+	${INSTALL_BASE}/libflashplayer.so"
+
+QA_DT_HASH="${INSTALL_BASE}32/libflashplayer.so
+	${INSTALL_BASE}/libflashplayer.so"
+
+pkg_setup() {
+	if use x86; then
+		export native_install=1
+	elif use amd64; then
+		# As of 10.1, no more native 64b version *grumble grumble*
+		unset native_install
+		unset need_lahf_wrapper
+		export amd64_32bit=1
+	fi
+}
+
+src_compile() {
+	if [[ $need_lahf_wrapper ]]; then
+		# This experimental wrapper, from Maks Verver via bug #268336 should
+		# emulate the missing lahf instruction affected platforms.
+		$(tc-getCC) -fPIC -shared -nostdlib -lc -oflashplugin-lahf-fix.so \
+			"${FILESDIR}/flashplugin-lahf-fix.c" \
+			|| die "Compile of flashplugin-lahf-fix.so failed"
+	fi
+}
+
+src_install() {
+	if [[ $native_install ]]; then
+		# 32b RPM has things hidden in funny places
+		use x86 && pushd "${S}/usr/lib/flash-plugin"
+
+		exeinto /${INSTALL_BASE}
+		doexe libflashplayer.so
+		inst_plugin /${INSTALL_BASE}/libflashplayer.so
+
+		use x86 && popd
+
+		# 64b tarball has no readme file.
+		use x86 && dodoc "${S}/usr/share/doc/flash-plugin-${PV}/readme.txt"
+	fi
+
+	if [[ $need_lahf_wrapper ]]; then
+		# This experimental wrapper, from Maks Verver via bug #268336 should
+		# emulate the missing lahf instruction affected platforms.
+		exeinto /${INSTALL_BASE}
+		doexe flashplugin-lahf-fix.so
+		inst_plugin /${INSTALL_BASE}/flashplugin-lahf-fix.so
+	fi
+
+	if [[ $amd64_32bit ]]; then
+		local oldabi="${ABI}"
+		ABI="x86"
+
+		# 32b plugin
+		pushd "${S}/usr/lib/flash-plugin"
+			exeinto /${INSTALL_BASE}32
+			doexe libflashplayer.so
+			inst_plugin /${INSTALL_BASE}32/libflashplayer.so
+			dodoc "${S}/usr/share/doc/flash-plugin-${PV}/readme.txt"
+		popd
+
+		ABI="${oldabi}"
+	fi
+
+	# The magic config file!
+	insinto "/etc/adobe"
+	doins "${FILESDIR}/mms.cfg"
+}
+
+pkg_postinst() {
+	if use amd64; then
+		elog "Adobe has no stable 64-bit native version at this time. The beta"
+		elog "64-bit native release (codenamed \"square\") is installed as part"
+		elog "of the unstable testing version of this package:"
+		elog "  ${CATEGORY}/${P}_p...."
+		elog
+		if has_version 'www-plugins/nspluginwrapper'; then
+			if [[ $native_install ]]; then
+				# Note: This code branch is dead (no native 64-bit flash player
+				# available yet for 10.1), but I'm keeping it around in the hope
+				# that some day it will be back...
+				#  - Jim Ramsay <lack@gentoo.org>
+
+				# TODO: Perhaps parse the output of 'nspluginwrapper -l'
+				#       However, the 64b flash plugin makes
+				#       'nspluginwrapper -l' segfault.
+				local FLASH_WRAPPER="${ROOT}/usr/lib64/nsbrowser/plugins/npwrapper.libflashplayer.so"
+				if [[ -f ${FLASH_WRAPPER} ]]; then
+					einfo "Removing duplicate 32-bit plugin wrapper: Native 64-bit plugin installed"
+					nspluginwrapper -r "${FLASH_WRAPPER}"
+				fi
+				if [[ $need_lahf_wrapper ]]; then
+					ewarn "Your processor does not support the 'lahf' instruction which is used"
+					ewarn "by Adobe's 64-bit flash binary.  We have installed a wrapper which"
+					ewarn "should allow this plugin to run.  If you encounter problems, please"
+					ewarn "adjust your USE flags to install only the 32-bit version and reinstall:"
+					ewarn "  ${CATEGORY}/$PN[+32bit -64bit]"
+					elog
+				fi
+			else
+				einfo "nspluginwrapper detected: Installing plugin wrapper"
+				local oldabi="${ABI}"
+				ABI="x86"
+				local FLASH_SOURCE="${ROOT}/${INSTALL_BASE}32/libflashplayer.so"
+				nspluginwrapper -i "${FLASH_SOURCE}"
+				ABI="${oldabi}"
+				elog
+			fi
+		elif [[ ! $native_install ]]; then
+			elog "To use the 32-bit flash player in a native 64-bit firefox,"
+			elog "you must install www-plugins/nspluginwrapper."
+			elog
+		fi
+	fi
+
+	ewarn "Flash player is closed-source, with a long history of security"
+	ewarn "issues.  Please consider only running flash applets you know to"
+	ewarn "be safe.  The 'flashblock' extension may help for mozilla users:"
+	ewarn "  https://addons.mozilla.org/en-US/firefox/addon/433"
+}
