diff --git a/.gitignore b/.gitignore
index 967199d..a2c5c68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 /emacs-23.3a.tar.bz2
 /php-mode.el
 /emacs-24.0.92.tar.gz
+/emacs-24.0.93.tar.gz
diff --git a/emacs-ede-cve-2012-0035.patch b/emacs-ede-cve-2012-0035.patch
deleted file mode 100644
index 9fe81a8..0000000
--- a/emacs-ede-cve-2012-0035.patch
+++ /dev/null
@@ -1,379 +0,0 @@
-diff -up emacs-24.0.92/lisp/cedet/ede/auto.el.ede-cve-2012-0035 emacs-24.0.92/lisp/cedet/ede/auto.el
---- emacs-24.0.92/lisp/cedet/ede/auto.el.ede-cve-2012-0035	2011-11-15 06:00:11.000000000 +0100
-+++ emacs-24.0.92/lisp/cedet/ede/auto.el	2012-01-19 18:03:08.533397558 +0100
-@@ -58,6 +58,13 @@ associated with a single object class, b
- 	  :initform t
- 	  :documentation
- 	  "Non-nil if this is an option when a user creates a project.")
-+   (safe-p :initarg :safe-p
-+	   :initform t
-+	   :documentation
-+	   "Non-nil if the project load files are \"safe\".
-+An unsafe project is one that loads project variables via Emacs
-+Lisp code.  A safe project is one that loads project variables by
-+scanning files without loading Lisp code from them.")
-    )
-   "Class representing minimal knowledge set to run preliminary EDE functions.
- When more advanced functionality is needed from a project type, that projects
-@@ -69,13 +76,15 @@ type is required and the load function u
- 			 :name "Make" :file 'ede/proj
- 			 :proj-file "Project.ede"
- 			 :load-type 'ede-proj-load
--			 :class-sym 'ede-proj-project)
-+			 :class-sym 'ede-proj-project
-+			 :safe-p nil)
-    (ede-project-autoload "edeproject-automake"
- 			 :name "Automake" :file 'ede/proj
- 			 :proj-file "Project.ede"
- 			 :initializers '(:makefile-type Makefile.am)
- 			 :load-type 'ede-proj-load
--			 :class-sym 'ede-proj-project)
-+			 :class-sym 'ede-proj-project
-+			 :safe-p nil)
-    (ede-project-autoload "automake"
- 			 :name "automake" :file 'ede/project-am
- 			 :proj-file "Makefile.am"
-@@ -84,6 +93,8 @@ type is required and the load function u
- 			 :new-p nil))
-   "List of vectors defining how to determine what type of projects exist.")
- 
-+(put 'ede-project-class-files 'risky-local-variable t)
-+
- ;;; EDE project-autoload methods
- ;;
- (defmethod ede-project-root ((this ede-project-autoload))
-@@ -122,6 +133,19 @@ Return nil if the project file does not
-     (when (and f (file-exists-p f))
-       f)))
- 
-+(defmethod ede-auto-load-project ((this ede-project-autoload) dir)
-+  "Load in the project associated with THIS project autoload description.
-+THIS project description should be valid for DIR, where the project will
-+be loaded."
-+  ;; Last line of defense: don't load unsafe projects.
-+  (when (not (or (oref this :safe-p)
-+		 (ede-directory-safe-p dir)))
-+    (error "Attempt to load an unsafe project (bug elsewhere in EDE)"))
-+  ;; Things are good - so load the project.
-+  (let ((o (funcall (oref this load-type) dir)))
-+    (when (not o)
-+      (error "Project type error: :load-type failed to create a project"))
-+    (ede-add-project-to-global-list o)))
- 
- (provide 'ede/auto)
- 
-diff -up emacs-24.0.92/lisp/cedet/ede.el.ede-cve-2012-0035 emacs-24.0.92/lisp/cedet/ede.el
---- emacs-24.0.92/lisp/cedet/ede.el.ede-cve-2012-0035	2011-11-20 07:34:43.000000000 +0100
-+++ emacs-24.0.92/lisp/cedet/ede.el	2012-01-19 18:05:41.523484918 +0100
-@@ -94,6 +94,42 @@ target willing to take the file.  'never
-   :group 'ede
-   :type 'sexp) ; make this be a list of options some day
- 
-+(defcustom ede-project-directories nil
-+  "Directories in which EDE may search for project files.
-+If the value is t, EDE may search in any directory.
-+
-+If the value is a function, EDE calls that function with one
-+argument, the directory name; the function should return t iff
-+EDE should look for project files in the directory.
-+
-+Otherwise, the value should be a list of fully-expanded directory
-+names.  EDE searches for project files only in those directories.
-+If you invoke the commands \\[ede] or \\[ede-new] on a directory
-+that is not listed, Emacs will offer to add it to the list.
-+
-+Any other value disables searching for EDE project files."
-+  :group 'ede
-+  :type '(choice (const :tag "Any directory" t)
-+		 (repeat :tag "List of directories"
-+			 (directory))
-+		 (function :tag "Predicate"))
-+  :version "23.4"
-+  :risky t)
-+
-+(defun ede-directory-safe-p (dir)
-+  "Return non-nil if DIR is a safe directory to load projects from.
-+Projects that do not load a project definition as Emacs Lisp code
-+are safe, and can be loaded automatically.  Other project types,
-+such as those created with Project.ede files, are safe only if
-+specified by `ede-project-directories'."
-+  (setq dir (directory-file-name (expand-file-name dir)))
-+  ;; Load only if allowed by `ede-project-directories'.
-+  (or (eq ede-project-directories t)
-+      (and (functionp ede-project-directories)
-+	   (funcall ede-project-directories dir))
-+      (and (listp ede-project-directories)
-+	   (member dir ede-project-directories))))
-+
- 
- ;;; Management variables
- 
-@@ -420,24 +456,42 @@ provided `global-ede-mode' is enabled."
- Sets buffer local variables for EDE."
-   (let* ((ROOT nil)
- 	 (proj (ede-directory-get-open-project default-directory
--					       'ROOT)))
-+					       'ROOT))
-+	 (projauto nil))
-+
-     (when (or proj ROOT
--	      (ede-directory-project-p default-directory t))
-+	      ;; If there is no open project, look up the project
-+	      ;; autoloader to see if we should initialize.
-+	      (setq projauto (ede-directory-project-p default-directory t)))
-+
-+      (when (and (not proj) projauto)
-+
-+	;; No project was loaded, but we have a project description
-+	;; object.  This means that we can check if it is a safe
-+	;; project to load before requesting it to be loaded.
-+
-+	(when (or (oref projauto safe-p)
-+		  ;; The project style is not safe, so check if it is
-+		  ;; in `ede-project-directories'.
-+		  (let ((top (ede-toplevel-project default-directory)))
-+		    (ede-directory-safe-p top)))
- 
--      (when (not proj)
--	;; @todo - this could be wasteful.
--	(setq proj (ede-load-project-file default-directory 'ROOT)))
-+	  ;; The project is safe, so load it in.
-+	  (setq proj (ede-load-project-file default-directory 'ROOT))))
- 
--      (setq ede-object (ede-buffer-object (current-buffer)
-+      ;; Only initialize EDE state in this buffer if we found a project.
-+      (when proj
-+
-+	(setq ede-object (ede-buffer-object (current-buffer)
- 					  'ede-object-project))
- 
--      (setq ede-object-root-project
--	    (or ROOT (ede-project-root ede-object-project)))
-+	(setq ede-object-root-project
-+	      (or ROOT (ede-project-root ede-object-project)))
- 
--      (if (and (not ede-object) ede-object-project)
--	  (ede-auto-add-to-target))
-+	(if (and (not ede-object) ede-object-project)
-+	    (ede-auto-add-to-target))
- 
--      (ede-apply-target-options))))
-+	(ede-apply-target-options)))))
- 
- (defun ede-reset-all-buffers (onoff)
-   "Reset all the buffers due to change in EDE.
-@@ -557,13 +611,73 @@ of objects with the `ede-want-file-p' me
- 
- ;;; Interactive method invocations
- ;;
--(defun ede (file)
--  "Start up EDE on something.
--Argument FILE is the file or directory to load a project from."
--  (interactive "fProject File: ")
--  (if (not (file-exists-p file))
--      (ede-new file)
--    (ede-load-project-file (file-name-directory file))))
-+(defun ede (dir)
-+  "Start up EDE for directory DIR.
-+If DIR has an existing project file, load it.
-+Otherwise, create a new project for DIR."
-+  (interactive
-+   ;; When choosing a directory to turn on, and we see some directory here,
-+   ;; provide that as the default.
-+   (let* ((top (ede-toplevel-project default-directory))
-+	  (promptdflt (or top default-directory)))
-+     (list (read-directory-name "Project directory: "
-+				promptdflt promptdflt t))))
-+  (unless (file-directory-p dir)
-+    (error "%s is not a directory" dir))
-+  (when (ede-directory-get-open-project dir)
-+    (error "%s already has an open project associated with it" dir))
-+
-+  ;; Check if the directory has been added to the list of safe
-+  ;; directories.  It can also add the directory to the safe list if
-+  ;; the user chooses.
-+  (if (ede-check-project-directory dir)
-+      (progn
-+	;; If there is a project in DIR, load it, otherwise do
-+	;; nothing.
-+	(ede-load-project-file dir)
-+
-+	;; Check if we loaded anything on the previous line.
-+	(if (ede-current-project dir)
-+
-+	    ;; We successfully opened an existing project.  Some open
-+	    ;; buffers may also be referring to this project.
-+	    ;; Resetting all the buffers will get them to also point
-+	    ;; at this new open project.
-+	    (ede-reset-all-buffers 1)
-+
-+	  ;; ELSE
-+	  ;; There was no project, so switch to `ede-new' which is how
-+	  ;; a user can select a new kind of project to create.
-+	  (let ((default-directory (expand-file-name dir)))
-+	    (call-interactively 'ede-new))))
-+
-+    ;; If the proposed directory isn't safe, then say so.
-+    (error "%s is not an allowed project directory in `ede-project-directories'"
-+	   dir)))
-+
-+(defun ede-check-project-directory (dir)
-+  "Check if DIR should be in `ede-project-directories'.
-+If it is not, try asking the user if it should be added; if so,
-+add it and save `ede-project-directories' via Customize.
-+Return nil iff DIR should not be in `ede-project-directories'."
-+  (setq dir (directory-file-name (expand-file-name dir))) ; strip trailing /
-+  (or (eq ede-project-directories t)
-+      (and (functionp ede-project-directories)
-+	   (funcall ede-project-directories dir))
-+      ;; If `ede-project-directories' is a list, maybe add it.
-+      (when (listp ede-project-directories)
-+	(or (member dir ede-project-directories)
-+	    (when (y-or-n-p (format "`%s' is not listed in `ede-project-directories'.
-+Add it to the list of allowed project directories? "
-+				    dir))
-+	      (push dir ede-project-directories)
-+	      ;; If possible, save `ede-project-directories'.
-+	      (if (or custom-file user-init-file)
-+		  (let ((coding-system-for-read nil))
-+		    (customize-save-variable
-+		     'ede-project-directories
-+		     ede-project-directories)))
-+	      t)))))
- 
- (defun ede-new (type &optional name)
-   "Create a new project starting from project type TYPE.
-@@ -598,6 +712,11 @@ Optional argument NAME is the name to gi
-     (error "Cannot create project in non-existent directory %s" default-directory))
-   (when (not (file-writable-p default-directory))
-     (error "No write permissions for %s" default-directory))
-+  (unless (ede-check-project-directory default-directory)
-+    (error "%s is not an allowed project directory in `ede-project-directories'"
-+	   default-directory))
-+  ;; Make sure the project directory is loadable in the future.
-+  (ede-check-project-directory default-directory)
-   ;; Create the project
-   (let* ((obj (object-assoc type 'name ede-project-class-files))
- 	 (nobj (let ((f (oref obj file))
-@@ -631,6 +750,10 @@ Optional argument NAME is the name to gi
- 	(ede-add-subproject pp nobj)
- 	(ede-commit-project pp)))
-     (ede-commit-project nobj))
-+  ;; Once the project is created, load it again.  This used to happen
-+  ;; lazily, but with project loading occurring less often and with
-+  ;; security in mind, this is now the safe time to reload.
-+  (ede-load-project-file default-directory)
-   ;; Have the menu appear
-   (setq ede-minor-mode t)
-   ;; Allert the user
-@@ -653,11 +776,16 @@ ARGS are additional arguments to pass to
- (defun ede-rescan-toplevel ()
-   "Rescan all project files."
-   (interactive)
--  (let ((toppath (ede-toplevel-project default-directory))
--	(ede-deep-rescan t))
--    (project-rescan (ede-load-project-file toppath))
--    (ede-reset-all-buffers 1)
--    ))
-+  (if (not (ede-directory-get-open-project default-directory))
-+      ;; This directory isn't open.  Can't rescan.
-+      (error "Attempt to rescan a project that isn't open")
-+
-+    ;; Continue
-+    (let ((toppath (ede-toplevel-project default-directory))
-+	  (ede-deep-rescan t))
-+
-+      (project-rescan (ede-load-project-file toppath))
-+      (ede-reset-all-buffers 1))))
- 
- (defun ede-new-target (&rest args)
-   "Create a new target specific to this type of project file.
-@@ -893,7 +1021,7 @@ Optional ROOTRETURN will return the root
-   ;; Do the load
-   ;;(message "EDE LOAD : %S" file)
-   (let* ((file dir)
--	 (path (expand-file-name (file-name-directory file)))
-+	 (path (file-name-as-directory (expand-file-name dir)))
- 	 (pfc (ede-directory-project-p path))
- 	 (toppath nil)
- 	 (o nil))
-@@ -922,13 +1050,11 @@ Optional ROOTRETURN will return the root
-       ;; See if it's been loaded before
-       (setq o (object-assoc (ede-dir-to-projectfile pfc toppath) 'file
- 			    ede-projects))
--      (if (not o)
--	  ;; If not, get it now.
--	  (let ((ede-constructing pfc))
--	    (setq o (funcall (oref pfc load-type) toppath))
--	    (when (not o)
--	      (error "Project type error: :load-type failed to create a project"))
--	    (ede-add-project-to-global-list o)))
-+
-+      ;; If not open yet, load it.
-+      (unless o
-+	(let ((ede-constructing pfc))
-+	  (setq o (ede-auto-load-project pfc toppath))))
- 
-       ;; Return the found root project.
-       (when rootreturn (set rootreturn o))
-@@ -982,13 +1108,7 @@ Optional argument OBJ is an object to fi
- 	     (and root
- 		  (ede-find-subproject-for-directory root updir))
- 	     ;; Try the all structure based search.
--	     (ede-directory-get-open-project updir)
--	     ;; Load up the project file as a last resort.
--	     ;; Last resort since it uses file-truename, and other
--	     ;; slow features.
--	     (and (ede-directory-project-p updir)
--		  (ede-load-project-file
--		   (file-name-as-directory updir))))))))))
-+	     (ede-directory-get-open-project updir))))))))
- 
- (defun ede-current-project (&optional dir)
-   "Return the current project file.
-@@ -1002,11 +1122,7 @@ If optional DIR is provided, get the pro
-     ;; No current project.
-     (when (not ans)
-       (let* ((ldir (or dir default-directory)))
--	(setq ans (ede-directory-get-open-project ldir))
--	(or ans
--	    ;; No open project, if this dir pass project-p, then load.
--	    (when (ede-directory-project-p ldir)
--	      (setq ans (ede-load-project-file ldir))))))
-+	(setq ans (ede-directory-get-open-project ldir))))
-     ;; Return what we found.
-     ans))
- 
-@@ -1061,12 +1177,13 @@ If TARGET belongs to a subproject, retur
-   "Return the project which is the parent of TARGET.
- It is recommended you track the project a different way as this function
- could become slow in time."
--  ;; @todo - use ede-object-project as a starting point.
--  (let ((ans nil) (projs ede-projects))
--    (while (and (not ans) projs)
--      (setq ans (ede-target-in-project-p (car projs) target)
--	    projs (cdr projs)))
--    ans))
-+  (or ede-object-project
-+      ;; If not cached, derive it from the current directory of the target.
-+      (let ((ans nil) (projs ede-projects))
-+	(while (and (not ans) projs)
-+	  (setq ans (ede-target-in-project-p (car projs) target)
-+		projs (cdr projs)))
-+	ans)))
- 
- (defmethod ede-find-target ((proj ede-project) buffer)
-   "Fetch the target in PROJ belonging to BUFFER or nil."
-diff -up emacs-24.0.92/lisp/cedet/ede/simple.el.ede-cve-2012-0035 emacs-24.0.92/lisp/cedet/ede/simple.el
---- emacs-24.0.92/lisp/cedet/ede/simple.el.ede-cve-2012-0035	2011-10-14 02:40:36.000000000 +0200
-+++ emacs-24.0.92/lisp/cedet/ede/simple.el	2012-01-19 18:03:08.533397558 +0100
-@@ -50,7 +50,8 @@
- 	      :name "Simple" :file 'ede/simple
- 	      :proj-file 'ede-simple-projectfile-for-dir
- 	      :load-type 'ede-simple-load
--	      :class-sym 'ede-simple-project)
-+	      :class-sym 'ede-simple-project
-+	      :safe-p nil)
- 	     t)
- 
- (defcustom ede-simple-save-directory "~/.ede"
diff --git a/emacs.spec b/emacs.spec
index fb1bc24..c4c2a98 100644
--- a/emacs.spec
+++ b/emacs.spec
@@ -2,7 +2,7 @@
 Summary: GNU Emacs text editor
 Name: emacs
 Epoch: 1
-Version: 24.0.92
+Version: 24.0.93
 Release: 1%{?dist}
 License: GPLv3+
 URL: http://www.gnu.org/software/emacs/
@@ -29,8 +29,6 @@ Patch2: rpm-spec-mode-utc.patch
 Patch3: rpm-spec-mode-changelog.patch
 # rhbz#713600
 Patch7: emacs-spellchecker.patch
-# http://lists.gnu.org/archive/html/emacs-devel/2012-01/msg00387.html
-Patch11: emacs-ede-cve-2012-0035.patch
 
 BuildRequires: atk-devel, cairo-devel, freetype-devel, fontconfig-devel, dbus-devel, giflib-devel, glibc-devel, gtk2-devel, libpng-devel
 BuildRequires: libjpeg-devel, libtiff-devel, libX11-devel, libXau-devel, libXdmcp-devel, libXrender-devel, libXt-devel
@@ -152,7 +150,6 @@ packages that add functionality to Emacs.
 
 %patch0 -p1 -b .glibc-open-macro
 %patch7 -p1 -b .spellchecker
-%patch11 -p1 -b .ede-cve-2012-0035
 
 # Install site-lisp files
 cp %SOURCE7 %SOURCE10 site-lisp
@@ -433,6 +430,9 @@ update-desktop-database &> /dev/null || :
 %dir %{_datadir}/emacs/site-lisp/site-start.d
 
 %changelog
+* Mon Feb  6 2012 Karel Klíč <kklic@redhat.com> - 1:24.0.93-1
+- Update to newer pre-release version
+
 * Thu Jan 19 2012 Karel Klíč <kklic@redhat.com> - 1:24.0.92-1
 - Upstream pre-release
 
diff --git a/sources b/sources
index 8584c37..e3f43af 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-51f9c3b28f340a49042f103198aade96  emacs-24.0.92.tar.gz
+67944406766180368ab8024796a66135  emacs-24.0.93.tar.gz
 d9a1e06bb579950c58fd3c1d8e813ce6  php-mode.el