diff --git a/README.md b/README.md
index 5f7723b..0251544 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@
 include a version, VCS, repository location (that can be different from the
 package name), etc. When `glide up` is run it downloads the packages (or updates)
 to the `vendor` directory. It then recursively walks through the downloaded
-packages looking for those with a `glide.yaml` file (or Godep, gb, or GPM config
+packages looking for those with a `glide.yaml` file (or Godep, gb, gom, or GPM config
 file) that don't already have a `vendor` directory and installing their
 dependencies to their `vendor` directories. Once Glide has downloaded and figured
 out versions to use in the dependency tree it creates a `glide.lock` file
@@ -151,7 +151,7 @@
 ```
 
 When `glide get` is used it will introspect the listed package to resolve its
-dependencies including using Godep, GPM, and GB config files.
+dependencies including using Godep, GPM, Gom, and GB config files.
 
 ### glide update (aliased to up)
 
@@ -164,7 +164,7 @@
 ```
 
 This will recurse over the packages looking for other projects managed by Glide,
-Godep, gb, and GPM. When one is found those packages will be installed as needed.
+Godep, gb, gom, and GPM. When one is found those packages will be installed as needed.
 
 A `glide.lock` file will be created or updated with the dependencies pinned to
 specific versions. For example, if in the `glide.yaml` file a version was
diff --git a/docs/commands.md b/docs/commands.md
index 3699e6f..f18c03e 100644
--- a/docs/commands.md
+++ b/docs/commands.md
@@ -31,7 +31,7 @@
 
     $ glide get github.com/Masterminds/cookoo
 
-When `glide get` is used it will introspect the listed package to resolve its dependencies including using Godep, GPM, and GB config files.
+When `glide get` is used it will introspect the listed package to resolve its dependencies including using Godep, GPM, Gom, and GB config files.
 
 The `glide get` command can have a [version or range](versions.md) passed in with the package name. For example,
 
@@ -45,7 +45,7 @@
 
     $ glide up
 
-This will recurse over the packages looking for other projects managed by Glide, Godep, gb, and GPM. When one is found those packages will be installed as needed.
+This will recurse over the packages looking for other projects managed by Glide, Godep, GB, Gom, and GPM. When one is found those packages will be installed as needed.
 
 A `glide.lock` file will be created or updated with the dependencies pinned to specific versions. For example, if in the `glide.yaml` file a version was specified as a range (e.g., `^1.2.3`) it will be set to a specific commit id in the `glide.lock` file. That allows for reproducible installs (see `glide install`).
 
diff --git a/docs/faq.md b/docs/faq.md
index fcc9837..000edba 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -18,12 +18,12 @@
 * `--strip-vcs` (aliased to `-s`) to strip VCS metadata (e.g., `.git` directories) from the `vendor` folder.
 * `--strip-vendor` (aliased to `-v`) to strip nested `vendor/` directories.
 
-## Q: How do I import settings from GPM, Godep, or gb?
+## Q: How do I import settings from GPM, Godep, Gom, or GB?
 
 There are two parts to importing.
 
-1. If a package you import has configuration for GPM, Godep, or gb Glide will recursively install the dependencies automatically.
-2. If you would like to import configuration from GPM, Godep, or gb to Glide see the `glide import` command. For example, you can run `glide import godep` for Glide to detect the projects Godep configuration and generate a `glide.yaml` file for you.
+1. If a package you import has configuration for GPM, Godep, Gom, or GB Glide will recursively install the dependencies automatically.
+2. If you would like to import configuration from GPM, Godep, Gom, or GB to Glide see the `glide import` command. For example, you can run `glide import godep` for Glide to detect the projects Godep configuration and generate a `glide.yaml` file for you.
 
 Each of these will merge your existing `glide.yaml` file with the
 dependencies it finds for those managers, and then emit the file as
diff --git a/docs/getting-started.md b/docs/getting-started.md
index 6626ffa..7d2a7c6 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -4,7 +4,7 @@
 
 ## Initially Detecting Project Dependencies
 
-Glide can detect the dependencies in use on a project and create an initial `glide.yaml` file for you. This detection can import the configuration from Godep, GPM, and GB. To do this change into the top level directory for the project and run:
+Glide can detect the dependencies in use on a project and create an initial `glide.yaml` file for you. This detection can import the configuration from Godep, GPM, Gom, and GB. To do this change into the top level directory for the project and run:
 
     $ glide init
 
@@ -16,7 +16,7 @@
 
     $ glide up
 
-The `up` is short for `update`. This will fetch any dependencies specified in the `glide.yaml` file, walk the dependency tree to make sure any dependencies of the dependencies are fetched, and set them to the proper version. While walking the tree it will make sure versions are set and configuration from Godep, GPM, and GB is imported.
+The `up` is short for `update`. This will fetch any dependencies specified in the `glide.yaml` file, walk the dependency tree to make sure any dependencies of the dependencies are fetched, and set them to the proper version. While walking the tree it will make sure versions are set and configuration from Godep, GPM, Gom, and GB is imported.
 
 The fetched dependencies are all placed in the `vendor/` folder at the root of the project. The `go` toolchain will use the dependencies here prior to looking in the `GOPATH` or `GOROOT` if you are using Go 1.6+ or Go 1.5 with the Go 1.5 Vendor Experiment enabled.
 
diff --git a/docs/index.md b/docs/index.md
index 8190a51..00419e8 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -10,7 +10,7 @@
 * Supports Git, Bzr, HG, and SVN. These are the same version control systems supported by `go get`.
 * Utilizes `vendor/` directories, known as the Vendor Experiment, so that different projects can have differing versions of the same dependencies.
 * Allows for aliasing packages which is useful for working with forks.
-* Import configuration from Godep, GPM, and GB.
+* Import configuration from Godep, GPM, Gom, and GB.
 
 ## Installing Glide
 
diff --git a/docs/resolving-imports.md b/docs/resolving-imports.md
index c48e9e8..e405cd9 100644
--- a/docs/resolving-imports.md
+++ b/docs/resolving-imports.md
@@ -14,7 +14,7 @@
 
 Again, this is the same way `go` trying to determine an external location when you use `go get`.
 
-If the project has dependency configuration stored in a Godep, GPM, or GB file that information will be used to populate the version within the `glide.yaml` file.
+If the project has dependency configuration stored in a Godep, GPM, Gom, or GB file that information will be used to populate the version within the `glide.yaml` file.
 
 ## At Update
 
@@ -28,10 +28,10 @@
 
 When a version control repo is fetched it does fetch the complete repo. But, it doesn't scan all the packages in the repo for dependencies. Instead, only the packages referenced in the tree are scanned with the imports being followed.
 
-Along the way configuration stored in Glide, Godep, GPM, and GB files are used to work out the version to set and fetched repos to. The first version found while walking the import tree wins.
+Along the way configuration stored in Glide, Godep, GPM, Gom, and GB files are used to work out the version to set and fetched repos to. The first version found while walking the import tree wins.
 
 ### All Possible Dependencies
 
 Using the `--all-dependencies` flag on `glide update` will change the behavior of the scan. Instead of walking the import tree it walks the filesystem and fetches all possible packages referenced everywhere. This downloads all packages in the tree. Even those not referenced in an applications source or in support of the applications imports.
 
-As in other cases, Glide, Godep, GPM, and GB files are used to set the version of the fetched repo.
+As in other cases, Glide, Godep, GPM, Gom, and GB files are used to set the version of the fetched repo.
