diff --git a/rpmio/macro.c b/rpmio/macro.c
index 14d4565..cc0638a 100644
--- a/rpmio/macro.c
+++ b/rpmio/macro.c
@@ -797,8 +797,10 @@ grabArgs(MacroBuf mb, const rpmMacroEntry me, const char * se,
{ ARGV_t av = NULL;
char *s = xcalloc((lastc-se)+1, sizeof(*s));
- memmove(s, se, (lastc-se));
- ret = se + strlen(s) + 1;
+ /* XXX expandMacro() expects next \0 which can be beyond lastc */
+ ret = strchr(se, '\0');
+ memcpy(s, se, (lastc-se));
+
argvSplit(&av, s, " ");
argvAppend(&argv, av);