diff -Naur vhdl-mode-3.33.27/ChangeLog vhdl-mode-3.33.28/ChangeLog
--- vhdl-mode-3.33.27/ChangeLog	2008-11-27 20:34:09.000000000 +0100
+++ vhdl-mode-3.33.28/ChangeLog	2009-12-08 18:38:38.817339477 +0100
@@ -1,3 +1,7 @@
+2009-12-08  Chitlesh Goorah <chitlesh@fedoraproject.org>
+
+	* vhdl-mode.el : Added ghdl as a compiler and default compiler to ghdl
+	* fixes minor compilation warnings
 2008-11-27  Reto Zimmermann  <reto@gnu.org>
 
 	* vhdl-mode.el: Version 3.33.27 released.
diff -Naur vhdl-mode-3.33.27/vhdl-mode.el vhdl-mode-3.33.28/vhdl-mode.el
--- vhdl-mode-3.33.27/vhdl-mode.el	2008-11-27 20:34:09.000000000 +0100
+++ vhdl-mode-3.33.28/vhdl-mode.el	2009-12-08 18:05:11.000000000 +0100
@@ -1,18 +1,19 @@
 ;;; vhdl-mode.el --- major mode for editing VHDL code
 
-;; Copyright (C) 1992-2008 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2009 Free Software Foundation, Inc.
 
 ;; Authors:     Reto Zimmermann <reto@gnu.org>
 ;;		Rodney J. Whitby <software.vhdl-mode@rwhitby.net>
+;;      Chitlesh Goorah <chitlesh@fedoraproject.org>
 ;; Maintainer:	Reto Zimmermann <reto@gnu.org>
-;; RCS:		$Id: vhdl-mode.el,v 33.67 2008/11/27 19:13:09 reto Exp reto $
+;; RCS:		$Id: vhdl-mode.el,v 33.67 2008/12/08 19:03:29 reto Exp reto $
 ;; Keywords:	languages vhdl
 ;; WWW:		http://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html
 
-(defconst vhdl-version "3.33.27"
+(defconst vhdl-version "3.33.28"
   "VHDL Mode version number.")
 
-(defconst vhdl-time-stamp "2008-11-27"
+(defconst vhdl-time-stamp "2009-12-08"
   "VHDL Mode time stamp for last update.")
 
 ;; This file is part of GNU Emacs.
@@ -69,7 +70,7 @@
 ;; Emacs Versions
 
 ;; supported: GNU Emacs 20.X/21.X/22.X, XEmacs 20.X/21.X
-;; tested on: GNU Emacs 20.4/21.3/22.1, XEmacs 21.1 (marginally)
+;; tested on: GNU Emacs 20.4/21.3/22.1,23.1, XEmacs 21.1 (marginally)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Installation
@@ -243,6 +244,12 @@
      ("ncvhdl_p: \\*E,\\w+ (\\(.+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0)
      ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db"
       "\\1/package/pc.db" "\\1/body/pc.db" downcase))
+    ;; ghdl vhdl: ghdl test.vhd
+    ("GHDL" "ghdl" "-i --workdir=\\1 --ieee=synopsys -fexplicit " "make" "-f \\1"
+     nil "mkdir \\1" "./" "work/" "Makefile" "ghdl"
+     ("ghdl_p: \\*E,\\w+ (\\(.+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0)
+     ("\\1/entity" "\\2/\\1" "\\1/configuration"
+      "\\1/package" "\\1/body" downcase))
     ;; Ikos Voyager: analyze test.vhd
     ;; analyze test.vhd
     ;; E L4/C5:        this library unit is inaccessible
@@ -453,7 +460,7 @@
 	 (vhdl-custom-set variable value 'vhdl-update-mode-menu))
   :group 'vhdl-compile)
 
-(defcustom vhdl-compiler "ModelSim"
+(defcustom vhdl-compiler "GHDL"
   "*Specifies the VHDL compiler to be used for syntax analysis.
 Select a compiler name from the ones defined in option `vhdl-compiler-alist'."
   :type (let ((alist vhdl-compiler-alist) list)
@@ -2343,17 +2350,17 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Compatibility with older speedbar version
 
-;; obsoleted variable `speedbar-ignored-path-expressions'
+;; obsoleted variable `speedbar-ignored-directory-expressions'
 ; `defvaralias' not defined in Emacs 21
 ;(unless (boundp 'speedbar-ignored-directory-expressions)
 ;  (defvaralias 'speedbar-ignored-directory-expressions
-;    'speedbar-ignored-path-expressions))
+;    'speedbar-ignored-directory-expressions))
 
-;; obsoleted variable `speedbar-ignored-path-regexp'
+;; obsoleted variable `speedbar-ignored-directory-regexp'
 ; `defvaralias' not defined in Emacs 21
 ;(unless (boundp 'speedbar-ignored-directory-regexp)
 ;  (defvaralias 'speedbar-ignored-directory-regexp
-;    'speedbar-ignored-path-regexp))
+;    'speedbar-ignored-directory-regexp))
 
 ;; obsoleted variable `speedbar-line-path'
 (unless (fboundp 'speedbar-line-directory)
@@ -8445,7 +8452,7 @@
 (defun vhdl-electric-quote (count) "'' --> \""
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
-      (if (= (preceding-char) last-input-char)
+      (if (= (preceding-char) last-input-event)
 	  (progn (delete-backward-char 1) (insert-char ?\" 1))
 	(insert-char ?\' 1))
     (self-insert-command count)))
@@ -8453,7 +8460,7 @@
 (defun vhdl-electric-semicolon (count) "';;' --> ' : ', ': ;' --> ' := '"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
-      (cond ((= (preceding-char) last-input-char)
+      (cond ((= (preceding-char) last-input-event)
 	     (progn (delete-char -1)
 		    (unless (eq (preceding-char) ? ) (insert " "))
 		    (insert ": ")
@@ -8467,7 +8474,7 @@
 (defun vhdl-electric-comma (count) "',,' --> ' <= '"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
-      (cond ((= (preceding-char) last-input-char)
+      (cond ((= (preceding-char) last-input-event)
 	     (progn (delete-char -1)
 		    (unless (eq (preceding-char) ? ) (insert " "))
 		    (insert "<= ")))
@@ -8477,7 +8484,7 @@
 (defun vhdl-electric-period (count) "'..' --> ' => '"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
-      (cond ((= (preceding-char) last-input-char)
+      (cond ((= (preceding-char) last-input-event)
 	     (progn (delete-char -1)
 		    (unless (eq (preceding-char) ? ) (insert " "))
 		    (insert "=> ")))
@@ -8487,7 +8494,7 @@
 (defun vhdl-electric-equal (count) "'==' --> ' == '"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
-      (cond ((= (preceding-char) last-input-char)
+      (cond ((= (preceding-char) last-input-event)
 	     (progn (delete-char -1)
 		    (unless (eq (preceding-char) ? ) (insert " "))
 		    (insert "== ")))
@@ -10960,7 +10967,7 @@
 	  (backward-word 1)
 	  (vhdl-case-word 1)
 	  (delete-char 1))
-      (let ((invoke-char last-command-char)
+      (let ((invoke-char last-command-event)
 	    (abbrev-mode -1)
 	    (vhdl-template-invoked-by-hook t))
 	(let ((caught (catch 'abort
@@ -14493,9 +14500,9 @@
 	   '(("vhdl directory" vhdl-speedbar-update-current-unit)
 	     ("vhdl project" vhdl-speedbar-update-current-project
 	      vhdl-speedbar-update-current-unit)
-; 	     ("files" (lambda () (setq speedbar-ignored-path-regexp
+; 	     ("files" (lambda () (setq speedbar-ignored-directory-regexp
 ; 				       (speedbar-extension-list-to-regex
-; 					speedbar-ignored-path-expressions))))
+; 					speedbar-ignored-directory-expressions))))
 	     )
 	   speedbar-stealthy-function-list))
     (when (eq vhdl-speedbar-display-mode 'directory)
@@ -14529,8 +14536,8 @@
 (defun vhdl-speedbar-display-directory (directory depth &optional rescan)
   "Display directory and hierarchy information in speedbar."
   (setq vhdl-speedbar-show-projects nil)
-  (setq speedbar-ignored-path-regexp
-	(speedbar-extension-list-to-regex speedbar-ignored-path-expressions))
+  (setq speedbar-ignored-directory-regexp
+	(speedbar-extension-list-to-regex speedbar-ignored-directory-expressions))
   (setq directory (abbreviate-file-name (file-name-as-directory directory)))
   (setq speedbar-last-selected-file nil)
   (speedbar-with-writable
@@ -14550,7 +14557,7 @@
 (defun vhdl-speedbar-display-projects (project depth &optional rescan)
   "Display projects and hierarchy information in speedbar."
   (setq vhdl-speedbar-show-projects t)
-  (setq speedbar-ignored-path-regexp ".")
+  (setq speedbar-ignored-directory-regexp ".")
   (setq speedbar-last-selected-file nil)
   (setq vhdl-speedbar-last-selected-project nil)
   (speedbar-with-writable
