Power consumption and thermal problems limit the single-core processors to be faster. Processor architects are therefore moving toward multi-coreprocessors. Developers of embedded real-time systems however hesitates a shift to multi-core processors, especially for existing "legacy" systemswhich have been developed with single-core processor assumptions. These systems have been developed and maintained by many developers over many years, and can not easily be replaced due to the huge development investments they represent. In this paper we investigate challenges ofmigrating complex legacy real-time systems to multi-core architectures. We propose componentization and partitioning to prepare the migration. Componentization groups logically related tasks into components (or subsystems). This provides an abstraction layer from a scheduling perspective, which facilitates migration. Partitioning maps tasks to the different cores on the multi-core processor, maximizing system performance while ensuring correctness.