Scope of this manual The User's Guide for Toolkit Developers provides detailed information about the design of Geant4 classes as well as the information required to extend the current functionality of the Geant4 toolkit. This manual is designed to: provide a repository of information for those who want to understand or refer to the detailed design of the toolkit, and provide details and procedures for extending the functionality of the toolkit so that experienced users may contribute code which is consistent with the overall design of Geant4. This manual is intended for developers and experienced users of Geant4. It is assumed that the reader is already familiar with functionality of the Geant4 toolkit as explained in the ``User's Guide For Application Developers", and also has a working knowledge of programming using C++. A knowledge of object-oriented analysis and design will also be useful in understanding this manual. It is also useful to consult the ``Software Reference Manual'' which provides a list of Geant4 classes and their major methods. Detailed discussions of the physics included in Geant4 are provided in the ``Physics Reference Manual''. How to use this manual Part I: to understand the goal of the software design of Geant4, it is useful to begin by reading the User Requirements Document referred to in the next section. Part II: ``Design and Function of the Geant4 Categories'' provides detailed information about the design of each class category and the classes in it. Before considering an extension of one of the toolkit categories, a detailed understanding of that category is required. Part III: ``Extending Toolkit Functionality'' explains in some detail how to extend the functionality of Geant4. Most of the class categories are covered and some, which are especially useful to most users, are covered in greater detail. It is not necessary to understand the entire manual before adding a new functionality. To add a new physics process, for example, only the following items must be read and understood: the design principle described in the ``Physics processes'' chapter of Part II techniques explained in the ``Physics processes'' chapter of Part III. User Requirements Document At the beginning of Geant4 development, a set of user requirements was collected in order to inform the object-oriented analysis and design of the toolkit. The User Requirements Document follows the PSS-05 software engineering standards and is available at http://cern.ch/geant4/OOAandD/URD.pdf . This document provides a general description of the main capabilities and constraints of the toolkit. It also defines three types of users characterized by their level of interaction with the system. Specific requirements are also listed and classified. [Status of this chapter] 24.06.05 - re-organized and re-written by D.H. Wright