diff --git a/SOURCES/0001-_dbus_babysitter_unref-avoid-infinite-loop-if-waitpi.patch b/SOURCES/0001-_dbus_babysitter_unref-avoid-infinite-loop-if-waitpi.patch
new file mode 100644
index 0000000..358ebac
--- /dev/null
+++ b/SOURCES/0001-_dbus_babysitter_unref-avoid-infinite-loop-if-waitpi.patch
@@ -0,0 +1,48 @@
+From a4f11f83a4b8ba8c7feecd37c7606d0d792d7fe6 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <simon.mcvittie@collabora.co.uk>
+Date: Wed, 4 Sep 2013 17:53:23 +0100
+Subject: [PATCH] _dbus_babysitter_unref: avoid infinite loop if waitpid()
+ returns EINTR
+
+If waitpid() failed with EINTR, we'd go back for another go, but
+because ret is nonzero, we'd skip the waitpid() and just keep looping.
+
+Also avoid an unnecessary "goto" in favour of a proper loop, to make it
+more clearly correct.
+
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68945
+---
+ dbus/dbus-spawn.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/dbus/dbus-spawn.c b/dbus/dbus-spawn.c
+index ef00801..6e42f55 100644
+--- a/dbus/dbus-spawn.c
++++ b/dbus/dbus-spawn.c
+@@ -308,15 +308,18 @@ _dbus_babysitter_unref (DBusBabysitter *sitter)
+           if (ret == 0)
+             kill (sitter->sitter_pid, SIGKILL);
+ 
+-        again:
+           if (ret == 0)
+-            ret = waitpid (sitter->sitter_pid, &status, 0);
++            {
++              do
++                {
++                  ret = waitpid (sitter->sitter_pid, &status, 0);
++                }
++              while (_DBUS_UNLIKELY (ret < 0 && errno == EINTR));
++            }
+ 
+           if (ret < 0)
+             {
+-              if (errno == EINTR)
+-                goto again;
+-              else if (errno == ECHILD)
++              if (errno == ECHILD)
+                 _dbus_warn ("Babysitter process not available to be reaped; should not happen\n");
+               else
+                 _dbus_warn ("Unexpected error %d in waitpid() for babysitter: %s\n",
+-- 
+1.8.4.rc3
+
diff --git a/SOURCES/0001-tests-Disable-name-test.patch b/SOURCES/0001-tests-Disable-name-test.patch
new file mode 100644
index 0000000..5693d9f
--- /dev/null
+++ b/SOURCES/0001-tests-Disable-name-test.patch
@@ -0,0 +1,27 @@
+From e0034acc5253a443eeb9232b316eb987c44ce3e7 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Mon, 11 Nov 2013 15:55:26 -0500
+Subject: [PATCH] tests: Disable name-test
+
+This wants to access $DISPLAY, which isn't available in mock.
+---
+ test/name-test/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/test/name-test/Makefile.am b/test/name-test/Makefile.am
+index 6aaf178..48a9cda 100644
+--- a/test/name-test/Makefile.am
++++ b/test/name-test/Makefile.am
+@@ -13,7 +13,8 @@ AM_LDFLAGS = @R_DYNAMIC_LDFLAG@
+ ## TESTS
+ if DBUS_BUILD_TESTS
+ TESTS_ENVIRONMENT=DBUS_TOP_BUILDDIR=@abs_top_builddir@ DBUS_TOP_SRCDIR=@abs_top_srcdir@ PYTHON=@PYTHON@
+-TESTS=run-test.sh run-test-systemserver.sh
++# Disabling due to attempting to access $DISPLAY
++#TESTS=run-test.sh run-test-systemserver.sh
+ else
+ TESTS=
+ endif
+-- 
+1.8.3.1
+
diff --git a/SOURCES/avoid-undefined-7c00ed22d9b5c33f5b33221e906946b11a9bde3b.patch b/SOURCES/avoid-undefined-7c00ed22d9b5c33f5b33221e906946b11a9bde3b.patch
new file mode 100644
index 0000000..3f13319
--- /dev/null
+++ b/SOURCES/avoid-undefined-7c00ed22d9b5c33f5b33221e906946b11a9bde3b.patch
@@ -0,0 +1,40 @@
+From 7c00ed22d9b5c33f5b33221e906946b11a9bde3b Mon Sep 17 00:00:00 2001
+From: DreamNik <dreamnik@mail.ru>
+Date: Sun, 29 Sep 2013 10:45:58 +0000
+Subject: make_and_run_test_nodes: avoid undefined behaviour
+
+In code that looks like n[i] = v(&i), where v increments i, C leaves it
+undefined whether the old or new value of i is used to locate n[i].
+As it happens, gcc used the pre-increment value of i, but MSVC
+used the post-increment value.
+
+Fix this by inserting a sequence point to disambiguate the intended order.
+
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69924
+Reviewed-by: Chengwei Yang <chengwei.yang@intel.com>
+Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
+[wrote commit message, fixed whitespace -smcv]
+Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
+---
+diff --git a/dbus/dbus-marshal-recursive-util.c b/dbus/dbus-marshal-recursive-util.c
+index 9512414..a2aaaf9 100644
+--- a/dbus/dbus-marshal-recursive-util.c
++++ b/dbus/dbus-marshal-recursive-util.c
+@@ -1785,10 +1785,13 @@ make_and_run_test_nodes (void)
+   start_next_test ("All values in one big toplevel %d iteration\n", 1);
+   {
+     TestTypeNode *nodes[N_VALUES];
++    TestTypeNode *node;
+ 
+     i = 0;
+-    while ((nodes[i] = value_generator (&i)))
+-      ;
++    while ((node = value_generator (&i)))
++      {
++        nodes[i - 1] = node;
++      }
+ 
+     run_test_nodes (nodes, N_VALUES);
+ 
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/SPECS/dbus.spec b/SPECS/dbus.spec
index c18a967..503fdac 100644
--- a/SPECS/dbus.spec
+++ b/SPECS/dbus.spec
@@ -13,7 +13,7 @@ Summary: D-BUS message bus
 Name: dbus
 Epoch: 1
 Version: 1.6.12
-Release: 5%{?dist}
+Release: 8%{?dist}
 URL: http://www.freedesktop.org/software/dbus/
 #VCS: git:git://git.freedesktop.org/git/dbus/dbus
 Source0: http://dbus.freedesktop.org/releases/dbus/%{name}-%{version}.tar.gz
@@ -52,6 +52,9 @@ BuildRequires: /usr/bin/Xvfb
 Patch0: bindir.patch
 Patch1: 0001-name-test-Don-t-run-test-autolaunch-if-we-don-t-have.patch
 Patch2: 0001-test-marshal-Ensure-we-use-suitably-aligned-buffers.patch
+Patch3: 0001-_dbus_babysitter_unref-avoid-infinite-loop-if-waitpi.patch
+Patch4: avoid-undefined-7c00ed22d9b5c33f5b33221e906946b11a9bde3b.patch
+Patch5: 0001-tests-Disable-name-test.patch
 
 %description
 D-BUS is a system for sending messages between applications. It is
@@ -103,6 +106,9 @@ in this separate package so server systems need not install X.
 %patch0 -p1 -b .bindir
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 if test -f autogen.sh; then env NOCONFIGURE=1 ./autogen.sh; else autoreconf -v -f -i; fi
@@ -151,7 +157,7 @@ if test -f autogen.sh; then env NOCONFIGURE=1 ./autogen.sh; else autoreconf -v -
 make clean
 # TODO: better script for this...
 export DISPLAY=42
-{ Xvfb :${DISPLAY} -nolisten tcp -auth /dev/null >/dev/null 2>&1 &
+{ Xvfb :${DISPLAY} -nolisten tcp -auth /dev/null &
   trap "kill -15 $! || true" 0 HUP INT QUIT TRAP TERM; };
 if ! env DBUS_TEST_SLOW=1 make check; then
     echo "TESTS FAIL, finding all Automake logs..." 1>&2;
@@ -248,6 +254,16 @@ fi
 %{_includedir}/*
 
 %changelog
+* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1:1.6.12-8
+- Mass rebuild 2014-01-24
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1:1.6.12-7
+- Mass rebuild 2013-12-27
+
+* Thu Sep 05 2013 Colin Walters <walters@verbum.org> - 1:1.6.12-6
+- Backport patch to avoid periodic busy looping
+  Resolves: #1029013
+
 * Thu Sep 05 2013 Colin Walters <walters@verbum.org> - 1:1.6.12-5
 - Add patch from Matěj Cepl to log more clearly when tests
   pass or fail