diff -Nru anacron-2.3/debian/anacron.0anacron.cron.daily anacron-2.3/debian/anacron.0anacron.cron.daily
--- anacron-2.3/debian/anacron.0anacron.cron.daily	2012-02-18 11:51:51.000000000 +0100
+++ anacron-2.3/debian/anacron.0anacron.cron.daily	1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-#!/bin/sh
-#
-# anacron's cron script
-#
-# This script updates anacron time stamps. It is called through run-parts
-# either by anacron itself or by cron.
-#
-# The script is called "0anacron" to assure that it will be executed
-# _before_ all other scripts.
-
-test -x /usr/sbin/anacron || exit 0
-anacron -u cron.daily
diff -Nru anacron-2.3/debian/anacron.0anacron.cron.hourly anacron-2.3/debian/anacron.0anacron.cron.hourly
--- anacron-2.3/debian/anacron.0anacron.cron.hourly	1970-01-01 01:00:00.000000000 +0100
+++ anacron-2.3/debian/anacron.0anacron.cron.hourly	2014-11-16 19:51:00.000000000 +0100
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# anacron's cron script
+
+test -x /usr/sbin/anacron || exit 0
+test -r /etc/default/anacron && . /etc/default/anacron
+
+# Check whether 0anacron was run today already
+if test -r /var/spool/anacron/cron.daily; then
+    day=`cat /var/spool/anacron/cron.daily`
+fi
+if [ `date +%Y%m%d` = "$day" ]; then
+    exit 0;
+fi
+
+if test x"$ANACRON_RUN_ON_BATTERY_POWER" != x"yes" && test -x /usr/bin/on_ac_power
+then
+    /usr/bin/on_ac_power >/dev/null
+    if test $? -eq 1
+    then
+      exit 0
+    fi
+fi
+
+# on_ac_power doesn't exist, on_ac_power returns 0 (ac power being used)
+# or on_ac_power returns 255 (undefined, desktop machine without APM)
+/usr/sbin/anacron -s
diff -Nru anacron-2.3/debian/anacron.0anacron.cron.monthly anacron-2.3/debian/anacron.0anacron.cron.monthly
--- anacron-2.3/debian/anacron.0anacron.cron.monthly	2012-02-18 11:51:51.000000000 +0100
+++ anacron-2.3/debian/anacron.0anacron.cron.monthly	1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-#!/bin/sh
-#
-# anacron's cron script
-#
-# This script updates anacron time stamps. It is called through run-parts
-# either by anacron itself or by cron.
-#
-# The script is called "0anacron" to assure that it will be executed
-# _before_ all other scripts.
-
-test -x /usr/sbin/anacron || exit 0
-anacron -u cron.monthly
diff -Nru anacron-2.3/debian/anacron.0anacron.cron.weekly anacron-2.3/debian/anacron.0anacron.cron.weekly
--- anacron-2.3/debian/anacron.0anacron.cron.weekly	2012-02-18 11:51:51.000000000 +0100
+++ anacron-2.3/debian/anacron.0anacron.cron.weekly	1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-#!/bin/sh
-#
-# anacron's cron script
-#
-# This script updates anacron time stamps. It is called through run-parts
-# either by anacron itself or by cron.
-#
-# The script is called "0anacron" to assure that it will be executed
-# _before_ all other scripts.
-
-test -x /usr/sbin/anacron || exit 0
-anacron -u cron.weekly
diff -Nru anacron-2.3/debian/anacron.postinst anacron-2.3/debian/anacron.postinst
--- anacron-2.3/debian/anacron.postinst	1970-01-01 01:00:00.000000000 +0100
+++ anacron-2.3/debian/anacron.postinst	2014-11-16 19:32:15.000000000 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "configure" ]; then
+	if dpkg --compare-versions "$2" le-nl "2.3-22.1~"; then
+		update-rc.d anacron remove >/dev/null
+		deb-systemd-helper purge anacron.service
+		deb-systemd-helper unmask anacron.service
+	fi
+fi
+
+#DEBHELPER#
diff -Nru anacron-2.3/debian/anacron.service anacron-2.3/debian/anacron.service
--- anacron-2.3/debian/anacron.service	2013-12-01 14:57:42.000000000 +0100
+++ anacron-2.3/debian/anacron.service	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-[Unit]
-Description=Run anacron jobs
-After=time-sync.target
-ConditionACPower=true
-
-[Service]
-ExecStart=/usr/sbin/anacron -dsq
-
-[Install]
-WantedBy=multi-user.target
diff -Nru anacron-2.3/debian/apm.d anacron-2.3/debian/apm.d
--- anacron-2.3/debian/apm.d	2012-02-18 11:51:51.000000000 +0100
+++ anacron-2.3/debian/apm.d	1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-#! /bin/sh
-
-# This script makes anacron jobs start to run when the machine is
-# plugged into AC power, or woken up.  For a laptop, these are the 
-# closest parallels to turning on a desktop.
-
-# The /etc/init.d/anacron script now normally tries to avoid running
-# anacron unless on AC power, so as to avoid running down the battery.
-# (Things like the slocate updatedb cause a lot of IO.)  Rather than
-# trying to second-guess which events reflect having or not having
-# power, we just try to run anacron every time and let it abort if
-# there's no AC.  You'll see a message on the cron syslog facility 
-# (typically /var/log/cron) if it does run.
-
-case "$1,$2" in
-change,power|resume,*)
-    /usr/sbin/invoke-rc.d anacron start >/dev/null   
-    ;;
-esac
diff -Nru anacron-2.3/debian/changelog anacron-2.3/debian/changelog
--- anacron-2.3/debian/changelog	2014-09-26 05:56:25.000000000 +0200
+++ anacron-2.3/debian/changelog	2014-11-16 20:02:20.000000000 +0100
@@ -1,3 +1,12 @@
+anacron (2.3-22.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Run anacron every hours instead of once a day or after getting out of
+    sleep, this way it will run independently of the init system or the power
+    management framework. (Closes: #744753)
+
+ -- Laurent Bigonville <bigon@debian.org>  Sun, 16 Nov 2014 20:01:31 +0100
+
 anacron (2.3-22) unstable; urgency=low
 
   * Recommend virtual package "cron-daemon" (closes: #752509)
diff -Nru anacron-2.3/debian/control anacron-2.3/debian/control
--- anacron-2.3/debian/control	2014-09-03 05:10:06.000000000 +0200
+++ anacron-2.3/debian/control	2014-11-16 19:14:18.000000000 +0100
@@ -1,8 +1,7 @@
 Source: anacron
 Section: admin
 Priority: optional
-Build-Depends: debhelper (>= 9.20120410),
-	dh-systemd
+Build-Depends: debhelper (>= 9.20120410)
 Maintainer: Peter Eisentraut <petere@debian.org>
 Uploaders: Antonio Radici <antonio@dyne.org>
 Standards-Version: 3.9.5
@@ -12,7 +11,7 @@
 
 Package: anacron
 Architecture: any
-Depends: ${shlibs:Depends}, debianutils (>= 1.7), ${misc:Depends}, lsb-base (>= 3.0-10)
+Depends: ${shlibs:Depends}, debianutils (>= 1.7), ${misc:Depends}, lsb-base (>= 3.0-10), init-system-helpers (>= 1.18~)
 Replaces: pe
 Recommends: cron | cron-daemon, rsyslog | system-log-daemon
 Suggests: default-mta | mail-transport-agent, powermgmt-base
diff -Nru anacron-2.3/debian/cron.d anacron-2.3/debian/cron.d
--- anacron-2.3/debian/cron.d	2012-02-18 11:51:51.000000000 +0100
+++ anacron-2.3/debian/cron.d	1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-# /etc/cron.d/anacron: crontab entries for the anacron package
-
-SHELL=/bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-
-30 7    * * *   root	test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null
diff -Nru anacron-2.3/debian/init.d anacron-2.3/debian/init.d
--- anacron-2.3/debian/init.d	2012-05-21 20:48:57.000000000 +0200
+++ anacron-2.3/debian/init.d	1970-01-01 01:00:00.000000000 +0100
@@ -1,69 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides:          anacron
-# Required-Start:    $remote_fs $syslog $time
-# Required-Stop:     $remote_fs $syslog $time
-# Default-Start:     2 3 4 5
-# Default-Stop:
-# Short-Description: Run anacron jobs
-# Description: The first purpose of this script is to run anacron at
-#              boot so that it can catch up with missed jobs.  Note
-#              that anacron is not a daemon.  It is run here just once
-#              and is later started by the real cron.  The second
-#              purpose of this script is that said cron job invokes
-#              this script to start anacron at those subsequent times,
-#              to keep the logic in one place.
-### END INIT INFO
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-test -x /usr/sbin/anacron || exit 0
-test -r /etc/default/anacron && . /etc/default/anacron
-
-. /lib/lsb/init-functions
-
-case "$1" in
-  start)
-    if init_is_upstart 2>/dev/null; then
-        exit 1
-    fi
-    log_daemon_msg "Starting anac(h)ronistic cron" "anacron"
-    if test x"$ANACRON_RUN_ON_BATTERY_POWER" != x"yes" && test -x /usr/bin/on_ac_power
-    then
-        /usr/bin/on_ac_power >/dev/null
-        if test $? -eq 1
-        then
-          log_progress_msg "deferred while on battery power"
-	  log_end_msg 0
-	  exit 0
-        fi
-    fi
-
-    # on_ac_power doesn't exist, on_ac_power returns 0 (ac power being used)
-    # or on_ac_power returns 255 (undefined, desktop machine without APM)
-    start-stop-daemon --start --exec /usr/sbin/anacron -- -s
-    log_end_msg 0
-    ;;
-  restart|force-reload|reload)
-	# nothing to do
-    :
-    ;;
-  stop)
-    if init_is_upstart 2>/dev/null && status anacron 2>/dev/null | grep -q start
-    then
-        exit 0
-    fi
-    log_daemon_msg "Stopping anac(h)ronistic cron" "anacron"
-    start-stop-daemon --stop --exec /usr/sbin/anacron --oknodo --quiet
-    log_end_msg 0
-    ;;
-  status)
-    exit 4
-    ;;
-  *)
-    echo "Usage: /etc/init.d/anacron {start|stop|restart|force-reload|reload}"
-    exit 2
-    ;;
-esac
-
-exit 0
diff -Nru anacron-2.3/debian/maintscript anacron-2.3/debian/maintscript
--- anacron-2.3/debian/maintscript	1970-01-01 01:00:00.000000000 +0100
+++ anacron-2.3/debian/maintscript	2014-11-16 19:34:45.000000000 +0100
@@ -0,0 +1,7 @@
+rm_conffile /etc/apm/event.d/anacron 2.3-22.1~
+rm_conffile /etc/cron.d/anacron 2.3-22.1~
+rm_conffile /etc/cron.daily/0anacron 2.3-22.1~
+rm_conffile /etc/cron.monthly/0anacron 2.3-22.1~
+rm_conffile /etc/cron.weekly/0anacron 2.3-22.1~
+rm_conffile /etc/init/anacron.conf 2.3-22.1~
+rm_conffile /etc/init.d/anacron 2.3-22.1~
diff -Nru anacron-2.3/debian/pm-utils.power.d anacron-2.3/debian/pm-utils.power.d
--- anacron-2.3/debian/pm-utils.power.d	2012-03-10 23:19:03.000000000 +0100
+++ anacron-2.3/debian/pm-utils.power.d	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-# This script makes anacron jobs start/stop when a machine gets or loses AC
-# power.
-
-case $1 in
-    false)
-	/usr/sbin/invoke-rc.d anacron start >/dev/null   
-	;;
-    true)
-	/usr/sbin/invoke-rc.d anacron stop >/dev/null   
-	;;
-esac
diff -Nru anacron-2.3/debian/pm-utils.sleep.d anacron-2.3/debian/pm-utils.sleep.d
--- anacron-2.3/debian/pm-utils.sleep.d	2012-03-10 23:19:21.000000000 +0100
+++ anacron-2.3/debian/pm-utils.sleep.d	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-# This script makes anacron jobs start to run when the machine is woken up.
-# For a laptop, these are the closest parallels to turning on a desktop.
-
-case $1 in
-    resume|thaw)
-	/usr/sbin/invoke-rc.d anacron start >/dev/null   
-	;;
-    suspend|hibernate)
-	/usr/sbin/invoke-rc.d anacron stop >/dev/null   
-	;;
-esac
diff -Nru anacron-2.3/debian/README.debian anacron-2.3/debian/README.debian
--- anacron-2.3/debian/README.debian	2013-12-01 14:57:42.000000000 +0100
+++ anacron-2.3/debian/README.debian	2014-11-16 20:07:08.000000000 +0100
@@ -5,19 +5,11 @@
 never be aware that anacron and not cron is actually running
 cron.{daily,weekly,monthly}.
 
-Anacron itself however is not a daemon, so it will either be called at
-startup, on APM power status change, or by cron.  Disabling those will
-result in some jobs not being executed on time.
+Anacron itself however is not a daemon, it is triggered every hours by cron.
+Disabling it will result in some jobs not being executed on time.
 
 Anacron leaves messages in /var/log/syslog and /var/log/messages by
 default.
 
-By default, anacron does not run while on battery power.
-If you are using SysVinit, see /etc/default/anacron to change that.
-
-If you are using systemd and want to run anacron even when running on battery,
-you should create the following file with the specified content and then call
-"systemctl daemon-reload":
-    /etc/systemd/system/anacron.service.d/on-ac.conf:
-        [Unit]
-        ConditionACPower=
+By default, anacron does not run while on battery power, see
+/etc/default/anacron to change this behaviour.
diff -Nru anacron-2.3/debian/rules anacron-2.3/debian/rules
--- anacron-2.3/debian/rules	2014-06-13 04:41:50.000000000 +0200
+++ anacron-2.3/debian/rules	2014-11-16 18:15:56.000000000 +0100
@@ -10,18 +10,12 @@
 endif
 
 %:
-	dh $@ --with=systemd
+	dh $@
 
 override_dh_auto_install:
 	$(MAKE) install PREFIX=debian/anacron MANDIR=debian/anacron/usr/share/man
 	install -D -m 644 debian/anacrontab debian/anacron/etc/anacrontab
-	install -D -m 755 debian/apm.d debian/anacron/etc/apm/event.d/anacron
-	install -D -m 755 debian/pm-utils.power.d debian/anacron/usr/lib/pm-utils/power.d/anacron
-	install -D -m 755 debian/pm-utils.sleep.d debian/anacron/usr/lib/pm-utils/sleep.d/95anacron
 
 override_dh_installcron:
 	dh_installcron
 	dh_installcron --name=0anacron
-
-override_dh_installinit:
-	dh_installinit --no-start
diff -Nru anacron-2.3/debian/upstart anacron-2.3/debian/upstart
--- anacron-2.3/debian/upstart	2012-05-21 20:48:57.000000000 +0200
+++ anacron-2.3/debian/upstart	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-# anacron - anac(h)ronistic cron
-#
-# anacron executes commands at specific periods, but does not assume that
-# the machine is running continuously
-
-description	"anac(h)ronistic cron"
-
-start on runlevel [2345]
-stop on runlevel [!2345]
-
-expect fork
-normal exit 0
-
-exec anacron -s
