diff --git a/dynare.el b/dynare.el
new file mode 100644
index 0000000000000000000000000000000000000000..bf8f3eac795a5da14dbe40e24ea7840b0284da7c
--- /dev/null
+++ b/dynare.el
@@ -0,0 +1,112 @@
+;;; dynare.el --- major mode to edit .mod files for dynare
+;; Created: 2010 Sep 10
+;; Version: 0.1
+
+;; Copyright (C) 2010 Yannick Kalantzis
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, see
+;; <http://www.gnu.org/licenses/>.
+
+;; Keywords: dynare
+
+;; To comment/uncomment, use `ALT-;'. See `comment-dwim' for further details.
+
+;;; Installation:
+;;
+;;   Put the this file as "dynare.el" somewhere on your load path, then
+;;   add this to your .emacs or site-init.el file:
+;;
+;;   (require 'dynare)
+;;   (autoload 'dynare-mode "dynare" "Enter dynare mode." t)
+;;   (setq auto-mode-alist (cons '("\\.mod\\'" . dynare-mode) auto-mode-alist))
+
+;;; Changelog
+;;  2010-09-07 by Yannick Kalantzis
+;;    Minor changes. Add `require'. Add builtin operators `;' and `='.
+;;  2010-09-06 by Yannick Kalantzis 
+;;    Created. 
+;;    Reproduces Xah Lee's instructions. 
+;;    See <http://xahlee.org/emacs/elisp_syntax_coloring.html>
+;;    Very basic syntax highlighting: comments, some keywords.
+
+;;; TODO
+;;    - indentation 
+;;    - blocks templates "model/end", "initval/end", etc.
+;;    - functions to insert main keywords
+
+;;; Code:
+
+;; function to comment/uncomment text
+(defun dynare-comment-dwim (arg)
+"Comment or uncomment current line or region in a smart way.
+For detail, see `comment-dwim'."
+   (interactive "*P")
+   (require 'newcomment)
+   (let ((deactivate-mark nil) (comment-start "//") (comment-end ""))
+     (comment-dwim arg)))
+
+;; define several class of keywords
+(defvar dynare-keywords
+  '("var" "varexo" "parameters" "model" "initval" "endval" "end" "shocks" "periods" "values" "resid" "for" "endfor" "define" "in") 
+  "dynare keywords.")
+
+(defvar dynare-functions
+  '("simul" "steady" "check" "rplot" "dynatype")
+  "dynare functions.")
+
+;; create the regex string for each class of keywords
+(defvar dynare-keywords-regexp (regexp-opt dynare-keywords 'words))
+(defvar dynare-functions-regexp (regexp-opt dynare-functions 'words))
+
+;; clear memory
+(setq dynare-keywords nil)
+(setq dynare-functions nil)
+
+;; create the list for font-lock.
+;; each class of keyword is given a particular face
+(setq dynare-font-lock-keywords
+  `(
+    (,dynare-functions-regexp . font-lock-function-name-face)
+    (,dynare-keywords-regexp . font-lock-keyword-face)
+    (";\\|=" . font-lock-builtin-face)
+    ))
+
+;; define the major mode
+(define-derived-mode dynare-mode fundamental-mode
+  "dynare mode"
+  "dynare is a mode for editing mod files used by dynare."
+  (setq mode-name "dynare mode")
+
+  ;; modify the keymap
+  (define-key dynare-mode-map [remap comment-dwim] 'dynare-comment-dwim)
+
+  ;; define C++ style comment  “/* ... */” and “// ...” 
+  (modify-syntax-entry ?\/ ". 124b" dynare-mode-syntax-table) 
+  ;; "/" is the 1st and 2nd char of /* and */ (a-style) and the 2nd char of //
+  ;; (b-style)
+  (modify-syntax-entry ?* ". 23" dynare-mode-syntax-table)
+  ;; "*" is the 2nd and 1st char of /* and */ (a-style only)
+  (modify-syntax-entry ?\n "> b" dynare-mode-syntax-table)
+  ;; newline is the comment-end sequence of b-style comments
+
+  ;; syntax highlighting
+  (setq font-lock-defaults '((dynare-font-lock-keywords)))
+
+  ;; clear memory
+  (setq dynare-keywords-regexp nil)
+  (setq dynare-functions-regexp nil)
+  )
+
+(provide 'dynare)
+;;; dynare.el ends here
diff --git a/license.txt b/license.txt
index 1d1eee5f52c9901a85d8c3cefe86fcb0a06ec0b1..182de56d98fe7fe5fa940460109905d2a504cc9c 100644
--- a/license.txt
+++ b/license.txt
@@ -305,3 +305,20 @@ License: GPL-2+ with special Autoconf exception
  configuration script generated by GNU Autoconf, you may include
  it under the same distribution terms that you use for the rest
  of that program.
+
+Files: dynare.el
+Copyright: 2010, Yannick Kalantzis
+License: GPL-3+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with GNU Emacs; see the file COPYING.  If not, see
+ <http://www.gnu.org/licenses/>.
diff --git a/windows/dynare.nsi b/windows/dynare.nsi
index eae63eb0fbe54a4838f3bc29271d5b6f26cba437..41957d3d58aa0eb8584331a3f0441a94cf0778f6 100644
--- a/windows/dynare.nsi
+++ b/windows/dynare.nsi
@@ -52,7 +52,7 @@ Section "Dynare core (preprocessor and M-files)"
  SectionIn RO
 !insertmacro DETERMINE_CONTEXT
  SetOutPath $INSTDIR
- File README.txt mexopts.bat ..\license.txt
+ File README.txt mexopts.bat ..\license.txt ..\dynare.el
 
  SetOutPath $INSTDIR\matlab
  File /r ..\matlab\*.m
@@ -145,6 +145,7 @@ Section "Uninstall"
  Delete $INSTDIR\README.txt
  Delete $INSTDIR\license.txt
  Delete $INSTDIR\mexopts.bat
+ Delete $INSTDIR\dynare.el
  Rmdir /r $INSTDIR\matlab
  Rmdir /r $INSTDIR\mex
  Rmdir /r $INSTDIR\dynare++