Hi folks, I have made a real effort to improve the code. I have removed the C++ comments, and tried to follow the english C formatting rules, but this is not the main part. To follow Taco's suggestion about coding style, I finally took some time to read Knuth's article on literate programming. One of the consequences is that the patch no longer breaks weave. The other consequence is that I took the liberty to gather all the synchronization code into one section, except the macro definitions of course. This section is numbered 53b because I could not do anything else without breaking those weird *tex.ch. It is less than 3 pages long, I can send the extract off list. I also added some namespace convention. It appears that refering to "synchronization", or "synchronize" in pdftex.web is ambiguous because there is already a synchronization problem concerning the terminal. So I decided to change the name and call this "Synchronize TeXnology", abbreviated in the key word "synctex" Now, if you find trunk -exec grep "synctex" "{}" \; -print you will find absolutely all the places where synchronization plays the slightest role. Of course, the external file has been renamed to synctex.c the auxiliary file is foo.synctex the auxiliary shell script that will help editors and viewer to support synchronization will be named ... synctex. I think that this external helper should be stored on CTAN, in support/ synctex I forgot to say that the command line option is now -synctex=1 and the primitive is \synctex there are 25 google pages for synctex, and no pages for ""synchronize texnology"" I could not upload anything to sarovar, it seems that some limit has been reached. So I send the diff to Martin off list If necessary, I can create a new patch entry at sarovar.