diff -up ksh-20071105/src/cmd/ksh93/sh/macro.c.ifs ksh-20071105/src/cmd/ksh93/sh/macro.c
--- ksh-20071105/src/cmd/ksh93/sh/macro.c.ifs 2008-01-07 08:33:51.000000000 +0100
+++ ksh-20071105/src/cmd/ksh93/sh/macro.c 2008-01-07 08:35:45.000000000 +0100
@@ -1777,7 +1777,7 @@ static void comsubst(Mac_t *mp,int type)
#endif
*mp = savemac;
np = nv_scoped(IFSNOD);
- nv_putval(np,mp->ifsp,0);
+ nv_putval(np,mp->ifsp, NV_RDONLY);
mp->ifsp = nv_getval(np);
stakset(savptr,savtop);
newlines = 0;