I am asking this question for a Pakistani Citizen (with a valid US and Canada Visitor Visa) traveling from Karachi (KHI) to Toronto (YYZ). The best flight option for her is a flight that uses two different airlines (Gulf Air and Air Canada) on each leg of the journey. Clearly it is not CODESHARE. My questions are: will she have to 'exit' and recheck in at Frankfurt airport before going to Toronto? Will she get all her boarding passes at the first check in? Is this like regular transit or will she have to redo everything when the airline changes? And what happens to the baggage?