     ;; empty lines is equal or larger to the number given in this variable.
     (setq org-cycle-separator-lines 2) ; default = 2
 
+    (when (version<= (org-version) "8.2.99")
+      ;; Re-define `org-get-buffer-tags' as defined in org-mode version 8.3+
+      ;; for `counsel-org-tag' to work correctly in org-mode version 8.2.
+      (defun org-get-buffer-tags ()
+        "Get a table of all tags used in the buffer, for completion."
+        (org-with-wide-buffer
+         (goto-char (point-min))
+         (let ((tag-re (concat org-outline-regexp-bol
+                               "\\(?:.*?[ \t]\\)?"
+                               (org-re ":\\([[:alnum:]_@#%:]+\\):[ \t]*$")))
+               tags)
+           (while (re-search-forward tag-re nil t)
+             (dolist (tag (org-split-string (org-match-string-no-properties 1) ":"))
+               (push tag tags)))
+           (mapcar #'list (append org-file-tags (org-uniquify tags)))))))
+
 ;;; Agenda and Capture
     ;; http://orgmode.org/manual/Template-elements.html
     ;; http://orgmode.org/manual/Template-expansion.html

;; Time-stamp: <2015-07-27 11:56:43 kmodi>

;; Org Mode


;;  Bindings

(use-package org
  ;; :load-path "elisp/org-mode/lisp" ; org git master
  :mode ("\\.org\\'" . org-mode)
  :config
  (progn
;;; Org Variables
