Unexpected power draining can be caused by applications, by settings and by faulty hardware. Install shroot & powertop, uninstall any suspect apps, reboot, disconnect battery for 10s, turn on, wait 5 mins and run powertop under root access. If you get anything < 70% C4 (sleep) then you need to reflash. My N900 still gets kicked out of sleep state with no apps on it, so you need to retest in that state. Assuming all is good, you then reinstall a few apps at a time and test again. This is what all the battery drain threads say. [Should I put it in the Wikia?]
# powertop Powertop 1.13.3 status: Unknown job: pmtrackerdaemon Sleeping for 11 seconds before sampling Collecting data for 30 seconds Sample interval was 00m 30s 20752us C# | Ratio | Avg/dura | Frequency | Ratio --------+--------+----------+-----------+--------+ C0 | 7.1% | | 1150 MHz | nan% | C1 | 0.0% | 0.2ms | C2 | 5.4% | 6.3ms | C3 | 38.9% | 129.9ms | C4 | 48.6% | 502.7ms | IRQ# | Activity | Type | Name --------+------------+----------------+--------------------------- 12 | 1093 | INTC | DMA 37 | 434 | INTC | gp 86 | 317 | INTC | mmc1 56 | 304 | INTC | i2c_omap 11 | 233 | INTC | prcm 202 | 76 | GPIO | wl1251 57 | 34 | INTC | i2c_omap 21 | 33 | INTC | SGX 225 | 11 | GPIO | omap2-onenand PID# | Activity | Name | Function Entry (Expire) --------+------------+----------------+--------------------------- 0 | 291 | <kernel core> | tick_nohz_restart_sched_tick (tick_sched_timer) 3517 | 73 | TwimGo | schedule_hrtimeout_range (hrtimer_wakeup) 0 | 57 | <kernel core> | hrtimer_start (tick_sched_timer) 38 | 46D| awk | cpufreq_governor_dbs (delayed_work_timer_fn) 559 | 36 | wl12xx | schedule_timeout (process_timeout) 559 | 28 | wl12xx | queue_delayed_work (delayed_work_timer_fn) 1356 | 12 | wlancond | ieee80211_ioctl_siwpower (ieee80211_dynamic_ps_timer) 612 | 12 | mmcqd | schedule_timeout (process_timeout) 612 | 10 | mmcqd | cfq_completed_request (cfq_idle_slice_timer) 612 | 9 | mmcqd | queue_delayed_work (delayed_work_timer_fn) 740 | 6 | bme_RX-51 | sys_timer_settime (posix_timer_fn) 10 | 4 | omap2_mcspi | inet_twsk_schedule (inet_twdr_hangman) 695 | 4 | dsme | __enqueue_rt_entity (sched_rt_period_timer) 0 | 4 | <kernel core> | queue_delayed_work (delayed_work_timer_fn) 695 | 3 | dsme | do_nanosleep (hrtimer_wakeup) 1 | 3D| <kernel core> | queue_delayed_work (delayed_work_timer_fn) 3486 | 3 |telepathy-gabbl | sk_reset_timer (tcp_write_timer) 720 | 2D|<kernel module> | queue_delayed_work (delayed_work_timer_fn) 740 | 2 | bme_RX-51 | sys_timer_settime (posix_timer_fn) 740 | 2 | bme_RX-51 | do_nanosleep (hrtimer_wakeup) 740 | 2 | bme_RX-51 | schedule_timeout (process_timeout) 3517 | 2 | TwimGo | sk_reset_timer (tcp_write_timer) 10 | 2 | omap2_mcspi | sk_reset_timer (tcp_delack_timer) 3522 | 2 | TwimGo | sk_reset_timer (tcp_write_timer) 10 | 2 | omap2_mcspi | neigh_add_timer (neigh_timer_handler) 4684 | 2 | cat | setup_wb_timer (wb_timer_fn) 4887 | 1 | sshd | sk_reset_timer (tcp_write_timer) 612 | 1 | mmcqd | schedule_timeout (process_timeout) 1061 | 1 | hald-addon-bme | schedule_hrtimeout_range (hrtimer_wakeup) 3517 | 1 | TwimGo | journal_get_write_access (commit_timeout) 3517 | 1 | TwimGo | ubifs_wbuf_write_nolock (wbuf_timer_callback_nolock) 13 | 1 | pdflush | blk_plug_device (blk_unplug_timeout) 4909 | 1 | powertop | do_nanosleep (hrtimer_wakeup) Power domain activity breakdown Domain | % of time spent in states --------+---------+---------+---------+---------+---------- usbhost |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) sgx |OFF: 98%|RET: 0%|INA: 0%| ON: 1%| now:(OFF) per |OFF: 86%|RET: 6%|INA: 0%| ON: 7%| now:(ON) dss |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) cam |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) core |OFF: 48%|RET: 37%|INA: 2%| ON: 11%| now:(ON) neon |OFF: 48%|RET: 38%|INA: 5%| ON: 7%| now:(ON) mpu |OFF: 48%|RET: 38%|INA: 5%| ON: 7%| now:(ON) iva2 |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) Clock activity breakdown at end of period Domain | Active clocks --------+---------------+---------------+------------------ core | SDRC | HSOTGUSB_IDLE | OMAPCTRL | MAILBOXES | wkup | GPT1 | 32KSYNC | GPIO1 | WDT1 | SR1 | SR2 | ckgen | CORE | PERI | 96M | 48M | 12M | 54M | EMU_CORE | per | GPIO2 | GPIO3 | GPIO4 | GPIO5 | GPIO6 | Total wakeups 3161, 105.4/s | IRQ 2535, 84.5/s | Timers 626, 20.9/s HW wakeups 233, 7.8/s | Real gp_timers expired 178, 5.9/s [02:21:21 root@Nokia-N900:~]