In my In App purchase the case SKPaymentTransactionStateRestored: method does not get called when the purchase is restored, instead, case SKPaymentTransaction
case SKPaymentTransactionStateRestored:
case SKPaymentTransaction
You can implement paymentQueueRestoreCompletedTransactionsFinished: to determine if a restore was finished:
http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKPaymentTransactionObserver_Protocol/Reference/Reference.html