Recently my Apple iPhone 3GS with OS 3.1 started getting very warm in my pocket. And the battery life was very, very poor. It would be out of power after an hour or two. Huh? The battery life was fine one day, bad the next. What happened? How to fix iPhone poor battery life problems? How to fix iPhone slowdown problems?
I was able to figure out the reason for my problem and solve it. If you have similar problems, it may be the same, or it may be something different.
The Symptoms
The iPhone was too warm, like it had been running a graphics intensive game, even though it was doing nothing, sitting in my pocket. I suspected something in the iPhone that runs in the background was caught in some kind of loop, running constantly.
The Suspects
Well, there are lots of lesser system things but only only a few big system things that run in the background on an iPhone while it is just sitting at the Home screen sleeping: the phone software that keeps in touch with the cell towers, possibly the thing that looks for WiFi and Bluetooth wireless connections, the stuff that does ‘push’ – for application notifications and mail, and the thing that does ‘push’ with MobileMe services like the Calendar and Address Book.
The Investigation
My guess was that some software was hogging up all the computer time, heating the dev ice and using the battery. If this were a Macintosh, I’d just run the Activity Monitor utility and it would tell me what applications were using up all the CPU time. But the iPhone OS doesn’t have such a facility, so it was going to be a long hard slog.
Others who reported this kind of problem said things like turning off WiFi, syncing, Notifications helped. So I turned off one thing, then waited a while to see if the device didn’t get warm or chew up battery power. If it didn’t help, I tried another.
In the Settings app I tried turning off, one at a time: WiFi, Notifications, and in my Settings -> MobileMe mail account area, the Mail, Contacts, Calendars, Bookmarks, and Find My iPhone. And turning off one of these did solve the problem.
The Answer
Turning off Calendars in the Settings app in my MobileMe account did the trick.
Something was, it seemed, trying to constantly and endlessly sync the calendars in MobileMe with the iPhone. This constant communication and processing went on at all times, while I used the device, ran apps, even while the phone was sleeping.
I have three Macintosh computers that sync calendars with my MobileMe account, which is lepton@me.com. And of course the iPhone. The Macs and the MobileMe website all looked fine as far as calendars go. But when I checked closely into the Calendar app on the iPhone, I saw something unusual.
I went into Calendar and used the “Calendars” back button to get the screen (in OS 3.1) that lets you select what calendar to see. It had “All Calendars” at the top, and then the section named “lepton@me.com (MobileMe)” that listed the MobileMe calendars. That’s normal, but under that was a second “lepton@me.com (MobileMe)” section, and under that a third identical section.
OK, this messed up data must be the problem. And in fact, close checking confirmed this. These three entries had different sets of calendars, as I change them around from time to time. One set was the ‘right’ current set, the others were older sets.
As I looked at this screen with three sets, I saw it suddenly ‘jump’. These three sets were slowly, every five to ten seconds, rotating around in order. The ‘right’ set would be at top, then jump to the middle, then the bottom, back to top and so on. I could see right then and there that the system was constantly trying to update or get in sync these calendars. This was straining the system, slowing everything and ruining battery life.
The Solution Workaround
If this were not a System application, the solution would be easy. I would delete the application, and then re-install it. Doing this with any app deletes the app and all the data it has with it. Then reinstalling it gets you a fresh copy of the app, but without any data. Calendar could just sync once and get back the one and only proper set of calendars from MobileMe. This works with any app, if you don’t mind losing its settings and have a way to get back the data. But this is a System application. And you can’t delete a System application and therefore can’t delete the bogus extra data that was causing the problem.
So there is nothing you can do (with a stock, non-hacked iPhone). What I did was turn off MobileMe Calendar syncing in the Settings app of the iPhone. Then, on the Mac I physically sync with, in iTunes I turned on syncing with the calendars on that Mac. That Mac itself syncs with MobileMe. So everything is in sync. The Mac syncs with MobileMe and therefore the other two Macs, and the iPhone syncs with the Mac.
The drawback to this workaround is that the calendars on my iPhone only get updated when I physically sync with the Mac – calendars ‘push’ among the Macs, but not the iPhone. This is not a problem for me in my case.
And if I look at that screen in the Calendar app, I still see those extra bogus calendar sets. I had to go through and manually delete every calendar event in those calendars to get those duplicates out of the phone. Finally, everything is fine, with my calendars, battery life, and application speed.
The Aftermath
This is all a bug that is, in the end, up to Apple to fix. I have submitted a bug report and given additional information to Apple, so I expect at some point this problem will be addressed.
Maybe some readers have experienced the same problem, or perhaps a similar one. I hope what I learned and did can help you solve or workaround your problem – If you have a hot phone and low battery life, and sync with MobileMe, see if turning off one of the things you are syncing fix those symptoms.

This was great information, thank you.
This resolved my battery issue. thanks!
It fixes teh battery issue?
I’ve been pulling my hair out over the same exact problem for months now. Apple gave me a new phone,…problem came back in a few months. Tried EVERYTHING. What finally solved my problem was a HARD scrub of the phone and setting up as a brand new phone. What a PAIN though!
I’ve done a bit of research and found that turning SSL off with mobileme may help. I’m testing this right now. It’s weird how it will go months of being fine, and then all of a sudden it will start heating up in my pocket and running the battery dry.
I suppose at least NOW I know what the problem is related to. Hopefully I’ll be able to crack this nut without losing the calendar sync (OTA) – that is afterall one of the main reasons I’ve subscribed to mobile me.
I have the same problem too. I turned off push calendar sync and that made it bearable but the extra calendars are still there.
I tried a hard wipe (not a restore, but a fresh wipe) and that fixed it for a bit until the calendars started replicating themselves again.
In this state the phone is near unusable.