diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py index c5a4bd5726..0df7e939c8 100644 --- a/src/calibre/db/backend.py +++ b/src/calibre/db/backend.py @@ -111,7 +111,10 @@ class DBPrefs(dict): # {{{ if not self.disable_setting: raw = self.to_raw(val) with self.db.conn: - dbraw = self.db.execute('SELECT id,val FROM preferences WHERE key=?', (key,)).fetchone() + try: + dbraw = self.db.execute('SELECT id,val FROM preferences WHERE key=?', (key,)).next() + except StopIteration: + dbraw = None if dbraw is None or dbraw[1] != raw: if dbraw is None: self.db.execute('INSERT INTO preferences (key,val) VALUES (?,?)', (key, raw))