Hello again Its a while since I contacted you, but I have got somewhere. I'm still working on the version of noweb-mode.el that is distributed with noweb itself, but I'm getting places. I've made it more reliable: moving text used to confuse it horribly, but it shouldn't any more. And although I couldn't reproduce those `hot icons' in your noweb-mode, I used the << and >> of the chunk name to do the same job. I've also got tangling sorted. Well, it works for me. I haven't tested the line numbering and tab-resetting options yet, but I can tangle chunks and scraps (which I, recidivist that I am, refer to as threads: I can't help thinking that a web woven from threads will be prettier than one woven from scraps). Unfortunately, I couldn't see a reasonable way of breaking this out of the noweb-mode package. So my tangling won't work with your noweb-mode, you'll have to use mine. At least until you can incorporate the relevant functions into yours. I've also got the beginnings of an ess-noweb.el. For example, `ess-eval-chunk' simply runs `ess-eval-buffer' on the buffer that the chunk was tangled into. I've been using it successfully for about a week now, although not for anything particularly fancy. It adds the tangling options to the ESS menus, but only makes them active if noweb-mode is active. Here are the three relevant files (noweb-mode.el, noweb-font-lock-mode.el and ess-noweb.el). Give them a spin and see what you think. Wait up, you need my ess-site.el as well, cos that's were the menus are defined. Mark P.S. Incidentally, you mentioned that you were keen on version control, and preferred CVS to RCS. I'm trying to sort out version control on my stuff here at the moment, but was not convinced at all by CVS: it does far too many things that are not needed by a statistician. All the multiple developer stuff should be superfluous for tracking data: one person should be responsible for managing the file at any given time. So I'm going with a bare minimum approach: RCS, and shell scripts to hide most of the options. Just check things in, with automatic checking out so that the programs can always find the data they need, snapshots, and restoring. All done with symbolic links, so that the same files can be in several projects at the same time (RCS handles symbolic links ABOMINABLY, but the shell scripts can get around this.) My theory is that if the system is sufficiently simple, people *might* use it, but anything that requires too much thought will be a non-starter. What draw-backs do you see in this way of doing things ? Why would you do it differently ?