diff --git a/ChangeLog b/ChangeLog
index d8e010c62081834abcedc0bd4f91980d2f379755..2016a67a0214a77ef0fd9effb42d894dcb9aaacd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -28,7 +28,7 @@ General
 	- Added space and - keys to do page up and down.
   cwd_tab_completion(), input_tab()
 	- Changed bare malloc/calloc calls to nmalloc (found by Rocco).
-	- Added zero end of tmpBuf for sanity (Rocco).
+	- Added memset() to matchBuf to ensure sanity (Rocco, Adam).
 - nano.c:
   ABCD()
 	- New function, figures out what kbinput to return given
diff --git a/files.c b/files.c
index 6b5a9d2b463911cab68c13360c8bea27e1f69b87..8eef1e260b3ee2ddc34ed6f32557ea16cddf45f3 100644
--- a/files.c
+++ b/files.c
@@ -883,9 +883,9 @@ char *input_tab(char *buf, int place, int *lastWasTab, int *newplace)
 	/* Make a local copy of the string -- up to the position of the
 	   cursor */
 	matchBuf = (char *) nmalloc((strlen(buf) + 2) * sizeof(char));
+	memset(matchBuf, '\0', (strlen(buf) + 2));
 
 	strncpy(matchBuf, buf, place);
-	matchBuf[place] = 0;
 	tmp = matchBuf;
 
 	/* skip any leading white space */