diff --git a/configure.ac b/configure.ac
index 3708321..9e99746 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,6 +36,9 @@ AM_PROG_LEX
 # check for large file support
 AC_SYS_LARGEFILE
 
+# check for strlcpy(3)
+AC_CHECK_FUNCS([strlcpy])
+
 # Check for librsync.
 AC_ARG_WITH([librsync-source],
 	AS_HELP_STRING([--with-librsync-source=source-tar-file],
diff --git a/rsync.c b/rsync.c
index 86482ee..f319504 100644
--- a/rsync.c
+++ b/rsync.c
@@ -49,6 +49,7 @@
  *
  * @return index of the terminating byte.
  **/
+#ifndef HAVE_STRLCPY
 static size_t strlcpy(char *d, const char *s, size_t bufsize)
 {
         size_t len = strlen(s);
@@ -61,6 +62,7 @@ static size_t strlcpy(char *d, const char *s, size_t bufsize)
         }
         return ret;
 }
+#endif
 
 
 /* This has been taken from rsync sources: receiver.c */