diff -Naur a/toys/posix/chgrp.c b/toys/posix/chgrp.c
--- a/toys/posix/chgrp.c	2014-10-02 18:23:27.000000000 +0530
+++ b/toys/posix/chgrp.c	2014-10-06 17:48:38.646649228 +0530
@@ -90,7 +90,6 @@
       if (!p && isdigit(*own)) p=getpwuid(atoi(own));
       if (!p) error_exit("no user '%s'", own);
       TT.owner = p->pw_uid;
-      if (CFG_TOYBOX_FREE) free(own);
     }
   } else TT.group_name = *toys.optargs;
 
@@ -107,4 +106,5 @@
     if (new) dirtree_handle_callback(new, do_chgrp);
     else toys.exitval = 1;
   }
+  if (ischown && CFG_TOYBOX_FREE) free(own);
 }
