We present in this paper an approach aiming at adapting software components. It focuses on adapting component structures instead of adapting component services. Among the motivations of this kind of adaptation, we note its possible application to permit flexible deployment of software components and flexible loading of component code according to the available resources (CPU, memory). Our adaptation process is based on the analysis and the instrumentation of component codes. It respects the black-box property when it is implemented as a service provided by the component to be adapted. To support this structural adaptation technique, we developed an adaptation process which we have experimented using the Java framework of the Fractal component model. Categories and Subject Descriptors D.2.7 [Software Engineering]: Distribution, Maintenance, and Enhancement—Restructuring, reverse engineering, and reengineering General Terms Design, Languages Keywords Software component, structural a...