diff --git a/include/rssfuncs.php b/include/rssfuncs.php
index 0a20f5d8ea4438b7caf1f6ab4bf4ad46a0ad0060..9ea2662fccd0ea07cef1b0e3f6a3344469dc0f02 100644
--- a/include/rssfuncs.php
+++ b/include/rssfuncs.php
@@ -60,6 +60,12 @@
 	function update_daemon_common($link, $limit = DAEMON_FEED_LIMIT, $from_http = false, $debug = true) {
 		// Process all other feeds using last_updated and interval parameters
 
+		$schema_version = get_schema_version($link);
+
+		if ($schema_version != SCHEMA_VERSION) {
+			die("Schema version is wrong, please upgrade the database.\n");
+		}
+
 		define('PREFS_NO_CACHE', true);
 
 		// Test if the user has loggued in recently. If not, it does not update its feeds.
diff --git a/update.php b/update.php
index f5fa9e5694f0e170c6fa4bcd7e24592eb1c73fcb..1c43cdb94c2233be9aaf3c426e117590498b33bf 100755
--- a/update.php
+++ b/update.php
@@ -89,6 +89,14 @@
 		return;
 	}
 
+	if (!isset($options['update-schema'])) {
+		$schema_version = get_schema_version($link);
+
+		if ($schema_version != SCHEMA_VERSION) {
+			die("Schema version is wrong, please upgrade the database.\n");
+		}
+	}
+
 	define('QUIET', isset($options['quiet']));
 
 	if (isset($options["log"])) {
diff --git a/update_daemon2.php b/update_daemon2.php
index 8e1917b6f6efa91ef9025447342ca5827ee4b019..77d05be66159b2556aaebbfed6ec493d044eb3f8 100755
--- a/update_daemon2.php
+++ b/update_daemon2.php
@@ -183,6 +183,10 @@
 
 	db_close($link);
 
+	if ($schema_version != SCHEMA_VERSION) {
+		die("Schema version is wrong, please upgrade the database.\n");
+	}
+
 	while (true) {
 
 		// Since sleep is interupted by SIGCHLD, we need another way to