diff --git a/SOURCES/tcl-8.5.13-notifier-thread-fork-fix.patch b/SOURCES/tcl-8.5.13-notifier-thread-fork-fix.patch
new file mode 100644
index 0000000..9225a5e
--- /dev/null
+++ b/SOURCES/tcl-8.5.13-notifier-thread-fork-fix.patch
@@ -0,0 +1,173 @@
+diff --git a/unix/configure.in b/unix/configure.in
+index b606b74..46dec02 100755
+--- a/unix/configure.in
++++ b/unix/configure.in
+@@ -491,6 +491,12 @@ SC_ENABLE_LANGINFO
+ AC_CHECK_FUNCS(chflags)
+ 
+ #--------------------------------------------------------------------
++# Check for support of pthread_atfork function
++#--------------------------------------------------------------------
++
++AC_CHECK_FUNCS(pthread_atfork)
++
++#--------------------------------------------------------------------
+ # Check for support of isnan() function or macro
+ #--------------------------------------------------------------------
+ 
+@@ -513,7 +519,6 @@ if test "`uname -s`" = "Darwin" ; then
+     if test $tcl_corefoundation = yes; then
+ 	AC_CHECK_HEADERS(libkern/OSAtomic.h)
+ 	AC_CHECK_FUNCS(OSSpinLockLock)
+-	AC_CHECK_FUNCS(pthread_atfork)
+     fi
+     AC_DEFINE(USE_VFORK, 1, [Should we use vfork() instead of fork()?])
+     AC_DEFINE(TCL_DEFAULT_ENCODING, "utf-8",
+diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c
+index 51f0b1f..9006906 100644
+--- a/unix/tclUnixNotfy.c
++++ b/unix/tclUnixNotfy.c
+@@ -128,6 +128,15 @@ static Tcl_ThreadDataKey dataKey;
+ static int notifierCount = 0;
+ 
+ /*
++ * The following static stores the process ID of the initialized notifier
++ * thread. If it changes, we have passed a fork and we should start a new
++ * notifier thread.
++ *
++ * You must hold the notifierMutex lock before accessing this variable.
++ */
++static pid_t processIDInitialized = 0;
++
++/*
+  * The following variable points to the head of a doubly-linked list of
+  * ThreadSpecificData structures for all threads that are currently waiting on
+  * an event.
+@@ -193,7 +202,13 @@ static Tcl_ThreadId notifierThread;
+ 
+ #ifdef TCL_THREADS
+ static void	NotifierThreadProc(ClientData clientData);
+-#endif
++#ifdef HAVE_PTHREAD_ATFORK
++static int	atForkInit = 0;
++static void	AtForkPrepare(void);
++static void	AtForkParent(void);
++static void	AtForkChild(void);
++#endif /* HAVE_PTHREAD_ATFORK */
++#endif /* TCL_THREADS */
+ static int	FileHandlerEventProc(Tcl_Event *evPtr, int flags);
+ 
+ /*
+@@ -267,11 +282,38 @@ Tcl_InitNotifier(void)
+      */
+ 
+     Tcl_MutexLock(&notifierMutex);
++#ifdef HAVE_PTHREAD_ATFORK
++    /*
++     * Install pthread_atfork handlers to reinitialize the notifier in the
++     * child of a fork.
++     */
++
++    if (!atForkInit) {
++	int result = pthread_atfork(AtForkPrepare, AtForkParent, AtForkChild);
++
++	if (result) {
++	    Tcl_Panic("Tcl_InitNotifier: pthread_atfork failed");
++	}
++	atForkInit = 1;
++    }
++#endif
++    /*
++     * Check if my process id changed, e.g. I was forked
++     * In this case, restart the notifier thread and close the
++     * pipe to the original notifier thread
++     */
++    if (notifierCount > 0 && processIDInitialized != getpid()) {
++        notifierCount = 0;
++        processIDInitialized = 0;
++        close(triggerPipe);
++        triggerPipe = -1;
++    }
+     if (notifierCount == 0) {
+ 	if (TclpThreadCreate(&notifierThread, NotifierThreadProc, NULL,
+ 		TCL_THREAD_STACK_DEFAULT, TCL_THREAD_JOINABLE) != TCL_OK) {
+ 	    Tcl_Panic("Tcl_InitNotifier: unable to start notifier thread");
+ 	}
++	processIDInitialized = getpid();
+     }
+     notifierCount++;
+ 
+@@ -1230,6 +1272,73 @@ NotifierThreadProc(
+ 
+     TclpThreadExit (0);
+ }
++
++#ifdef HAVE_PTHREAD_ATFORK
++/*
++ *----------------------------------------------------------------------
++ *
++ * AtForkPrepare --
++ *
++ *	Lock the notifier in preparation for a fork.
++ *
++ * Results:
++ *	None.
++ *
++ * Side effects:
++ *	None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++static void
++AtForkPrepare(void)
++{
++}
++
++/*
++ *----------------------------------------------------------------------
++ *
++ * AtForkParent --
++ *
++ *	Unlock the notifier in the parent after a fork.
++ *
++ * Results:
++ *	None.
++ *
++ * Side effects:
++ *	None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++static void
++AtForkParent(void)
++{
++}
++
++/*
++ *----------------------------------------------------------------------
++ *
++ * AtForkChild --
++ *
++ *	Unlock and reinstall the notifier in the child after a fork.
++ *
++ * Results:
++ *	None.
++ *
++ * Side effects:
++ *	None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++static void
++AtForkChild(void)
++{
++    Tcl_InitNotifier();
++}
++#endif /* HAVE_PTHREAD_ATFORK */
++
+ #endif /* TCL_THREADS */
+ 
+ #endif /* HAVE_COREFOUNDATION */
diff --git a/SPECS/tcl.spec b/SPECS/tcl.spec
index ad3d604..aa54d46 100644
--- a/SPECS/tcl.spec
+++ b/SPECS/tcl.spec
@@ -5,7 +5,7 @@
 Summary: Tool Command Language, pronounced tickle
 Name: tcl
 Version: %{vers}
-Release: 4%{?dist}
+Release: 8%{?dist}
 Epoch: 1
 License: TCL
 Group: Development/Languages
@@ -19,6 +19,7 @@ Provides: tcl-tcldict = %{vers}
 Patch0: tcl-8.5.1-autopath.patch
 Patch1: tcl-8.5.10-conf.patch
 Patch2: tcl-8.5.12-hidden.patch
+Patch3: tcl-8.5.13-notifier-thread-fork-fix.patch
 
 %if %sdt
 BuildRequires: systemtap-sdt-devel
@@ -56,15 +57,16 @@ chmod -x generic/tclThreadAlloc.c
 %patch0 -p1 -b .autopath
 %patch1 -p1 -b .conf
 %patch2 -p1 -b .hidden
+%patch3 -p1 -b .notifier-thread-fork-fix
 
 %build
 pushd unix
-autoconf
+autoconf -f
 %configure \
 %if %sdt
 --enable-dtrace \
 %endif
---disable-threads \
+--enable-threads \
 --enable-symbols \
 --enable-shared
 
@@ -137,6 +139,24 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/%{name}%{majorver}/tclAppInit.c
 
 %changelog
+* Wed Jul 29 2015 Jaroslav Škarvada <jskarvad@redhat.com> - 1:8.5.13-8
+- Dropped 'configure' patch hunks, because 'configure' is re-generated
+  Related: rhbz#1247555
+
+* Wed Jul 29 2015 Jaroslav Škarvada <jskarvad@redhat.com> - 1:8.5.13-7
+- Forced autoconf to rebuild its files
+  Related: rhbz#1247555
+
+* Tue Jul 28 2015 Jaroslav Škarvada <jskarvad@redhat.com> - 1:8.5.13-6
+- Rebuilt due to wrong tcl_pkgPath on s390x and ppc64le
+  Resolves: rhbz#1247555
+
+* Mon Jul  6 2015 Jaroslav Škarvada <jskarvad@redhat.com> - 1:8.5.13-5
+- Fixed fork, enabled threading (by notifier-thread-fork-fix patch)
+  Resolves: rhbz#869315
+- Rebuild to fix systemtap on aarch64
+  Resolves: rhbz#1238479
+
 * Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1:8.5.13-4
 - Mass rebuild 2014-01-24