Sometimes when semanticdb-needs-refresh-p is called on a non-existing file it will report (wrong-type-argument number-or-marker-p nil) The backtrace is too large so I attached a cropped image instead. Tentative patch: diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el index 76a49dd..0e68cb5 100644 *** a/lisp/cedet/semantic/db.el --- b/lisp/cedet/semantic/db.el *************** *** 593,609 **** ) ;; Buffer isn't loaded. The only clue we have is if the file ;; is somehow different from our mark in the semanticdb table. (let* ((stats (file-attributes ff)) (actualsize (nth 7 stats)) (actualmod (nth 5 stats)) ) ! (or (not (slot-boundp obj 'tags)) ;; (not (oref obj tags)) --> not needed anymore? (/= (or (oref obj fsize) 0) actualsize) (not (equal (oref obj lastmodtime) actualmod)) ) )))) ;;; Synchronization --- 593,610 ---- ) ;; Buffer isn't loaded. The only clue we have is if the file ;; is somehow different from our mark in the semanticdb table. (let* ((stats (file-attributes ff)) (actualsize (nth 7 stats)) (actualmod (nth 5 stats)) ) ! (or (not stats) ! (not (slot-boundp obj 'tags)) ;; (not (oref obj tags)) --> not needed anymore? (/= (or (oref obj fsize) 0) actualsize) (not (equal (oref obj lastmodtime) actualmod)) ) )))) ;;; Synchronization In GNU Emacs 24.3.92.3 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10) of 2014-08-01 on kanru-mozilla Windowing system distributor `The X.Org Foundation', version 11.0.11204000 System Description: Debian GNU/Linux 7.6 (wheezy)