diff -Nur a/config.c b/config.c
--- a/config.c	2013-05-10 21:05:13.989903531 +0200
+++ b/config.c	2013-05-10 21:12:05.859901217 +0200
@@ -49,39 +49,6 @@
 #include "asprintf.c"
 #endif
 
-#if !defined(asprintf)
-#include <stdarg.h>
-
-int asprintf(char **string_ptr, const char *format, ...)
-{
-	va_list arg;
-	char *str;
-	int size;
-	int rv;
-
-	va_start(arg, format);
-	size = vsnprintf(NULL, 0, format, arg);
-	size++;
-	va_start(arg, format);
-	str = malloc(size);
-	if (str == NULL) {
-		va_end(arg);
-		/*
-		 * Strictly speaking, GNU asprintf doesn't do this,
-		 * but the caller isn't checking the return value.
-		 */
-		fprintf(stderr, "failed to allocate memory\\n");
-		exit(1);
-	}
-	rv = vsnprintf(str, size, format, arg);
-	va_end(arg);
-
-	*string_ptr = str;
-	return (rv);
-}
-
-#endif
-
 #if !defined(strndup)
 char *strndup(const char *s, size_t n)
 {
diff -Nur a/logrotate.h b/logrotate.h
--- a/logrotate.h	2013-04-30 10:29:31.000000000 +0200
+++ b/logrotate.h	2013-05-10 21:12:25.139901109 +0200
@@ -67,8 +67,5 @@
 extern int debug;
 
 int readAllConfigPaths(const char **paths);
-#if !defined(asprintf)
-int asprintf(char **string_ptr, const char *format, ...);
-#endif
 
 #endif
