There are three kinds of sharing that needs to take place. The base classes (GimpTool, GimpSelectionTool, GimpTransformTool, GimpPaintTool, GimpDrawTool, and <eeeeeeeek!> GimpObject) need to share their structure definitions in order to maintain and ensure binary compatibility. The other tool related classes (GimpToolModule and GimpToolControl) except for parts that need to know which side of the gimpwire they are on share headers and code. The other gimp related classes, such as GimpDrawable, need only to share function declarations. The structure definition should NOT be part of the shared code. A decision needs to be made about how to accomplish this sharing, especially in the case of GimpObject. Rockwalrus