I found that using the code below for determining the orientation works better. In our app we force landscape mode - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation inside a normal modal view and limiting with. With the previous way, the TDSemiModal thought it was still in portrait.
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
You were right, this is more reliable.