diff --git a/lib/ex_doc/autolink.ex b/lib/ex_doc/autolink.ex
index 0c9b42ac0..389f1f8de 100644
--- a/lib/ex_doc/autolink.ex
+++ b/lib/ex_doc/autolink.ex
@@ -250,7 +250,7 @@ defmodule ExDoc.Autolink do
defp mix_task(name, string, mode, config) do
{module, url, visibility} =
- if name =~ ~r/^[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)*$/ do
+ if name =~ ~r/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/ do
parts = name |> String.split(".") |> Enum.map(&Macro.camelize/1)
module = Module.concat([Mix, Tasks | parts])
diff --git a/test/ex_doc/language/elixir_test.exs b/test/ex_doc/language/elixir_test.exs
index f1b24b3a8..e1789d3c7 100644
--- a/test/ex_doc/language/elixir_test.exs
+++ b/test/ex_doc/language/elixir_test.exs
@@ -214,6 +214,9 @@ defmodule ExDoc.Language.ElixirTest do
assert autolink_doc("`mix compile.elixir`") ==
~s|mix compile.elixir
|
+ assert autolink_doc("`mix task_with_docs`") ==
+ ~s|mix task_with_docs
|
+
assert autolink_doc("`mix help compile.elixir`") ==
~s|mix help compile.elixir
|