diff --git a/SOURCES/rsync-3.0.6-iconv-logging.patch b/SOURCES/rsync-3.0.6-iconv-logging.patch
new file mode 100644
index 0000000..bf7d943
--- /dev/null
+++ b/SOURCES/rsync-3.0.6-iconv-logging.patch
@@ -0,0 +1,22 @@
+diff --git a/log.c b/log.c
+index 34a013b..1aca728 100644
+--- a/log.c
++++ b/log.c
+@@ -377,10 +377,13 @@ output_msg:
+ 				filtered_fwrite(f, convbuf, outbuf.len, 0);
+ 				outbuf.len = 0;
+ 			}
+-			if (!ierrno || ierrno == E2BIG)
+-				continue;
+-			fprintf(f, "\\#%03o", CVAL(inbuf.buf, inbuf.pos++));
+-			inbuf.len--;
++			/* Log one byte of illegal/incomplete sequence and continue with
++			 * the next character. Check that the buffer is non-empty for the
++			 * sake of robustness. */
++			if ((ierrno == EILSEQ || ierrno == EINVAL) && inbuf.len) {
++				fprintf(f, "\\#%03o", CVAL(inbuf.buf, inbuf.pos++));
++				inbuf.len--;
++			}
+ 		}
+ 	} else
+ #endif
diff --git a/SOURCES/rsync-3.1.0-protect_args.patch b/SOURCES/rsync-3.1.0-protect_args.patch
index 5fb722a..3ee30c9 100644
--- a/SOURCES/rsync-3.1.0-protect_args.patch
+++ b/SOURCES/rsync-3.1.0-protect_args.patch
@@ -20,3 +20,13 @@
  	if (!(arg = strdup(arg)))
  		out_of_memory("glob_expand_module");
  
+--- rsync-3.0.9.orig/t_unsafe.c
++++ rsync-3.0.9/t_unsafe.c
+@@ -28,6 +28,7 @@ int am_root = 0;
+ int read_only = 0;
+ int list_only = 0;
+ int verbose = 0;
++int protect_args = 0;
+ int preserve_perms = 0;
+ int preserve_executability = 0;
+ 
diff --git a/SPECS/rsync.spec b/SPECS/rsync.spec
index 7cc1e9a..10cd9b2 100644
--- a/SPECS/rsync.spec
+++ b/SPECS/rsync.spec
@@ -1,3 +1,4 @@
+%global _hardened_build 1
 %define isprerelease 0
 
 %if %isprerelease
@@ -7,7 +8,7 @@
 Summary: A program for synchronizing files over a network
 Name: rsync
 Version: 3.0.9
-Release: 11%{?prerelease}%{?dist}
+Release: 15%{?prerelease}%{?dist}
 Group: Applications/Internet
 URL: http://rsync.samba.org/
 
@@ -27,6 +28,7 @@ License: GPLv3+
 Patch0: rsync-3.0.10-lose-track.patch
 Patch1: rsync-man.patch
 Patch2: rsync-3.1.0-protect_args.patch
+Patch3: rsync-3.0.6-iconv-logging.patch
 
 %description
 Rsync uses a reliable algorithm to bring remote and host files into
@@ -60,6 +62,7 @@ patch -p1 -i patches/copy-devices.diff
 %patch0 -p1 -b .lose-track
 %patch1 -p1 -b .man
 %patch2 -p1 -b .protect_args
+%patch3 -p1 -b .iconv-logging
 
 %build
 rm -fr autom4te.cache
@@ -105,6 +108,20 @@ rm -rf $RPM_BUILD_ROOT
 %systemd_postun_with_restart rsyncd.service
 
 %changelog
+* Tue Feb 11 2014 Pavel Šimerda <psimerda@redhat.com> - 3.0.9-15
+- Resolves: #1032637 - rsync unit tests cannot be compiled
+- switch to hardened build
+
+* Tue Jan 28 2014 Pavel Šimerda <psimerda@redhat.com> - 3.0.9-14
+- Resolves: #1052814 - rsync command is terminated with SIGSEGV
+- Resolves: #1052814 - add missing patch file
+
+* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 3.0.9-13
+- Mass rebuild 2014-01-24
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 3.0.9-12
+- Mass rebuild 2013-12-27
+
 * Fri Jun 28 2013 Michal Luscon <mluscon@redhat.com> - 3.0.9-11
 - Add BuildRequires: systemd-units