diff --git a/dev-embedded/openocd/Manifest b/dev-embedded/openocd/Manifest
index 2a9159b..13287e1 100644
--- a/dev-embedded/openocd/Manifest
+++ b/dev-embedded/openocd/Manifest
@@ -1 +1 @@
-DIST openocd-0.5.0.tar.bz2 2228655 RMD160 f831b5406e7dd3a25ebaa2ceabb1de80d12bd7cf SHA1 807e4214b005029dccd1ed8af36f3897a5c6f49b SHA256 0bc122f98a6cd68c4392f6265d480b0e875ff54203ec05a5a52d23900903a78d
+DIST openocd-0.6.1.tar.bz2 3431071 SHA256 f4c4cc7445ad79cfba1bb24208e79c66edf9dc0c46b3c8fca391f4e41c942f2b SHA512 59f35750f761d3f2ce7a32ffdc5028d053fda2bd9424cc4497f528ec628ac1f022662d9f226dd2b04a8cd682a5cd056a09de14d50e1090426a816bb602f98250 WHIRLPOOL 81d43ce9866960edb7fdaefc5ec088852aaa79e86add67ea9682f26eb5f5d3e7c7523fde0729e15949af165470b44ded45b9d79662f651db56fd109db5074cad
diff --git a/dev-embedded/openocd/openocd-0.5.0.ebuild b/dev-embedded/openocd/openocd-0.5.0.ebuild
deleted file mode 100644
index 470cfd6..0000000
--- a/dev-embedded/openocd/openocd-0.5.0.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-embedded/openocd/openocd-0.5.0.ebuild,v 1.8 2012/06/01 02:26:43 zmedico Exp $
-
-EAPI="4"
-
-inherit eutils multilib
-if [[ ${PV} == "9999" ]] ; then
-	inherit autotools git-2
-	KEYWORDS=""
-	EGIT_REPO_URI="git://${PN}.git.sourceforge.net/gitroot/${PN}/${PN}"
-else
-	KEYWORDS="amd64 ~x86"
-	SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${PV}/${P}.tar.bz2"
-fi
-
-DESCRIPTION="OpenOCD - Open On-Chip Debugger"
-HOMEPAGE="http://openocd.sourceforge.net"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="blaster dummy ftd2xx ftdi minidriver parport presto segger usb versaloon"
-RESTRICT="strip" # includes non-native binaries
-
-# libftd2xx is the default because it is reported to work better.
-DEPEND="dev-lang/jimtcl
-	usb? ( virtual/libusb:0 )
-	presto? ( dev-embedded/libftd2xx )
-	ftd2xx? ( dev-embedded/libftd2xx )
-	ftdi? ( dev-embedded/libftdi )"
-RDEPEND="${DEPEND}"
-
-REQUIRED_USE="blaster? ( || ( ftdi ftd2xx ) ) ftdi? ( !ftd2xx )"
-
-src_prepare() {
-	if [[ ${PV} == "9999" ]] ; then
-		sed -i -e "/@include version.texi/d" doc/${PN}.texi || die
-		AT_NO_RECURSIVE=yes eautoreconf
-	fi
-}
-
-src_configure() {
-	# Here are some defaults
-	myconf="--enable-buspirate --enable-ioutil --disable-werror
-	--disable-internal-jimtcl --enable-amtjtagaccel
-	--enable-ep93xx --enable-at91rm9200 --enable-gw16012
-	--enable-oocd_trace"
-
-	if use usb; then
-		myconf="${myconf} --enable-usbprog --enable-jlink --enable-rlink \
-			--enable-vsllink --enable-arm-jtag-ew"
-	fi
-
-	# add explicitely the path to libftd2xx
-	use ftd2xx && LDFLAGS="${LDFLAGS} -L/opt/$(get_libdir)"
-
-	if use blaster; then
-		use ftdi && myconf="${myconf} --enable-usb_blaster_libftdi"
-		use ftd2xx && myconf="${myconf} --enable-usb_blaster_ftd2xx"
-	fi
-	econf \
-		$(use_enable dummy) \
-		$(use_enable ftdi ft2232_libftdi) \
-		$(use_enable ftd2xx ft2232_ftd2xx) \
-		$(use_enable minidriver minidriver-dummy) \
-		$(use_enable parport) \
-		$(use_enable presto presto_ftd2xx) \
-		$(use_enable segger jlink) \
-		$(use_enable versaloon vsllink) \
-		${myconf}
-}
-
-src_install() {
-	emake DESTDIR="${D}" install || die
-	dodoc AUTHORS ChangeLog NEWS README TODO || die
-	prepstrip "${D}"/usr/bin
-}
diff --git a/dev-embedded/openocd/openocd-0.6.1.ebuild b/dev-embedded/openocd/openocd-0.6.1.ebuild
new file mode 100644
index 0000000..1ffe8bd
--- /dev/null
+++ b/dev-embedded/openocd/openocd-0.6.1.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-embedded/openocd/openocd-0.6.1.ebuild,v 1.2 2013/04/23 03:16:09 vapier Exp $
+
+EAPI="4"
+
+inherit eutils multilib flag-o-matic toolchain-funcs
+if [[ ${PV} == "9999" ]] ; then
+	inherit autotools git-2
+	KEYWORDS=""
+	EGIT_REPO_URI="git://${PN}.git.sourceforge.net/gitroot/${PN}/${PN}"
+else
+	KEYWORDS="amd64 x86"
+	SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${PV}/${P}.tar.bz2"
+fi
+
+DESCRIPTION="OpenOCD - Open On-Chip Debugger"
+HOMEPAGE="http://openocd.sourceforge.net"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="blaster dummy ftd2xx ftdi minidriver parport presto segger usb versaloon"
+RESTRICT="strip" # includes non-native binaries
+
+# libftd2xx is the default because it is reported to work better.
+DEPEND=">=dev-lang/jimtcl-0.73
+	usb? ( virtual/libusb:0 )
+	presto? ( dev-embedded/libftd2xx )
+	ftd2xx? ( dev-embedded/libftd2xx )
+	ftdi? ( dev-embedded/libftdi )"
+RDEPEND="${DEPEND}"
+
+REQUIRED_USE="blaster? ( || ( ftdi ftd2xx ) ) ftdi? ( !ftd2xx )"
+
+src_prepare() {
+	if [[ ${PV} == "9999" ]] ; then
+		sed -i -e "/@include version.texi/d" doc/${PN}.texi || die
+		AT_NO_RECURSIVE=yes eautoreconf
+	fi
+
+	# Disable craptastic build settings.
+	sed -i \
+		-e 's:if test "[$]OCDxprefix" != "[$]ac_default_prefix":if false:' \
+		configure || die
+
+	if use ftdi ; then
+		local pc="libftdi$(has_version '=dev-embedded/libftdi-1*' && echo 1)"
+		# Use libftdi-1 paths #460916
+		local libs=$($(tc-getPKG_CONFIG) --libs ${pc})
+		sed -i \
+			-e "s:-lftdi -lusb:${libs}:" \
+			configure src/Makefile.in || die
+		append-cppflags $($(tc-getPKG_CONFIG) --cflags ${pc})
+	fi
+}
+
+src_configure() {
+	# Here are some defaults
+	local myconf=(
+		--enable-buspirate
+		--enable-ioutil
+		--disable-werror
+		--disable-internal-jimtcl
+		--enable-amtjtagaccel
+		--enable-ep93xx
+		--enable-at91rm9200
+		--enable-gw16012
+		--enable-oocd_trace
+	)
+
+	if use usb; then
+		myconf+=(
+			--enable-usbprog
+			--enable-jlink
+			--enable-rlink
+			--enable-vsllink
+			--enable-arm-jtag-ew
+		)
+	fi
+
+	# add explicitely the path to libftd2xx
+	use ftd2xx && append-ldflags -L/opt/$(get_libdir)
+
+	if use blaster; then
+		use ftdi && myconf+=( --enable-usb_blaster_libftdi )
+		use ftd2xx && myconf+=( --enable-usb_blaster_ftd2xx )
+	fi
+	econf \
+		$(use_enable dummy) \
+		$(use_enable ftdi ft2232_libftdi) \
+		$(use_enable ftd2xx ft2232_ftd2xx) \
+		$(use_enable minidriver minidriver-dummy) \
+		$(use_enable parport) \
+		$(use_enable presto presto_ftd2xx) \
+		$(use_enable segger jlink) \
+		$(use_enable versaloon vsllink) \
+		"${myconf[@]}"
+}
+
+src_install() {
+	default
+	env -uRESTRICT prepstrip "${ED}"/usr/bin "${ED}"/usr/$(get_libdir)
+}
