diff --git a/modules/fasd/README.md b/modules/fasd/README.md
new file mode 100644
index 0000000..5cfc2cc
--- /dev/null
+++ b/modules/fasd/README.md
@@ -0,0 +1,39 @@
+Fasd
+====
+
+[Fasd][1] is a command-line productivity booster, inspired by tools like
+[autojump][2], [z][3] and [v][4], it offers quick access to files and
+directories by keeping track of files and directories that were previously
+accessed.
+
+For completion to work, this module must be loaded **after** the *completion*
+module.
+
+The Prezto Fasd configuration differs from the default. The default aliases have
+been disabled.
+
+Aliases
+-------
+
+ - `j` changes the current working directory interactively.
+
+Completion
+----------
+
+Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`,
+`,,d` at the end of a comma-separated query then hit tab.
+
+Authors
+-------
+
+*The authors of this module should be contacted via the [issue tracker][5].*
+
+ - [Wei Dai](https://github.com/clvv)
+ - [Sorin Ionescu](https://github.com/sorin-ionescu)
+
+[1]: https://github.com/clvv/fasd
+[2]: https://github.com/joelthelion/autojump
+[3]: https://github.com/rupa/z
+[4]: https://github.com/rupa/v
+[5]: https://github.com/sorin-ionescu/prezto/issues
+
diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh
new file mode 100644
index 0000000..7088e9c
--- /dev/null
+++ b/modules/fasd/init.zsh
@@ -0,0 +1,54 @@
+#
+# Maintains a frequently used file and directory list for fast access.
+#
+# Authors:
+# Wei Dai
+# Sorin Ionescu
+#
+
+# Load dependencies.
+pmodload 'editor'
+
+# Return if requirements are not found.
+if (( ! $+commands[fasd] )); then
+ return 1
+fi
+
+#
+# Initialization
+#
+
+cache_file="${0:h}/cache.zsh"
+if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then
+ # Set the base init arguments.
+ init_args=(zsh-hook)
+
+ # Set fasd completion init arguments, if applicable.
+ if zstyle -t ':prezto:module:completion' loaded; then
+ init_args+=(zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install)
+ fi
+
+ # Cache init code.
+ fasd --init "$init_args[@]" >! "$cache_file" 2> /dev/null
+fi
+
+source "$cache_file"
+
+unset cache_file init_args
+
+function fasd_cd {
+ local fasd_ret="$(fasd -d "$@")"
+ if [[ -d "$fasd_ret" ]]; then
+ cd "$fasd_ret"
+ else
+ print "$fasd_ret"
+ fi
+}
+
+#
+# Aliases
+#
+
+# Changes the current working directory interactively.
+alias j='fasd_cd -i'
+