diff --git a/scripts/unifdef.c b/scripts/unifdef.c
index 5384b4377333abdfad975e7c2293f92bbf43e6f1..552025e72acb1341923bfb471547189419567844 100644
--- a/scripts/unifdef.c
+++ b/scripts/unifdef.c
@@ -450,7 +450,14 @@ ignoreon(void)
 static void
 keywordedit(const char *replacement)
 {
-	strlcpy(keyword, replacement, tline + sizeof(tline) - keyword);
+	size_t size = tline + sizeof(tline) - keyword;
+	char *dst = keyword;
+	const char *src = replacement;
+	if (size != 0) {
+		while ((--size != 0) && (*src != '\0'))
+			*dst++ = *src++;
+		*dst = '\0';
+	}
 	print();
 }
 static void