While I don't immediately see why EclipseKeyword need to be made noncopyable, since the base class is noncopyable. BTW, since it is supported by GCC 4.4, we should start using the C++11 "= delete" way of forbidding that (already done in EclipseHandle). I do think that the EclipseKeyword class should be move-constructible, though, so I'd prefer to keep the move constructor in.