It took me a little bit of frustrating time to figure this out yesterday, so I thought I'd post it in case other people ran into the same issue.
I set up PayPal Instant Payment Notification (IPN) and thoroughly tested it in the sandbox environment. Everything worked fine. However, when switching over to real PayPal, it stopped working and I couldn't figure out what was wrong with my code.
PayPal actually has IPN disabled by default while the Sandbox environment has IPN enabled by default. Be sure to change this setting in your profile.