diff --git a/contrib/tsearch2/ispell/spell.c b/contrib/tsearch2/ispell/spell.c
index aa5848b5c1bdeba92fd7940cbc8f030bd4f57677..1c2624fe8633feb3e033817bbafd128294961243 100644
--- a/contrib/tsearch2/ispell/spell.c
+++ b/contrib/tsearch2/ispell/spell.c
@@ -41,7 +41,7 @@ strlower(char *str)
 }
 
 static char* 
-strndup(char *s, int len) {
+strnduplicate(char *s, int len) {
 	char *d=(char*)palloc( len + 1 );
 	memcpy(d, s, len );
 	d[len]='\0';
@@ -866,7 +866,7 @@ SplitToVariants( IspellDict * Conf, SPNode *snode, SplitVar * orig, char *word,
 				/* and its length more than minimal */
 				if ( wordlen==level+1 ) {
 					/* well, it was last word */
-					var->stem[ var->nstem ] = strndup(word + startpos, wordlen - startpos);
+					var->stem[ var->nstem ] = strnduplicate(word + startpos, wordlen - startpos);
 					var->nstem++;
 					return var;
 				} else {
@@ -877,7 +877,7 @@ SplitToVariants( IspellDict * Conf, SPNode *snode, SplitVar * orig, char *word,
 					ptr->next=SplitToVariants(Conf, node, var, word, wordlen, startpos, level);
 					/* we can find next word */
 					level++;
-					var->stem[ var->nstem ] = strndup(word + startpos, level - startpos);
+					var->stem[ var->nstem ] = strnduplicate(word + startpos, level - startpos);
 					var->nstem++;
 					node = Conf->Dictionary;
 					startpos=level;
@@ -889,7 +889,7 @@ SplitToVariants( IspellDict * Conf, SPNode *snode, SplitVar * orig, char *word,
 		node=StopMiddle->node;
 	}
 
-	var->stem[ var->nstem ] = strndup(word + startpos, wordlen - startpos);
+	var->stem[ var->nstem ] = strnduplicate(word + startpos, wordlen - startpos);
 	var->nstem++;
 	return var;
 }