Just a side issue: On my system (PIII 1GHz), one pair of dup()/close() calls takes about 1us. Not all too much, but it may matter in IO-intensive applications.
Of course I am not arguing in favor of sacrificing stability for a tiny bit of performance. Just another small pro for my patch :-)
Martin