diff --git a/docs/dev/hardware.rst b/docs/dev/hardware.rst
index 31487b9a9a870056a6bc5910e569b449a2e2ae6d..dae2bbb3e69fe2a4353778ed0e939de61c23bd15 100644
--- a/docs/dev/hardware.rst
+++ b/docs/dev/hardware.rst
@@ -31,14 +31,14 @@ can work::
 
     lua -e 'print(require("platform_info").get_image_name())'
 
-While porting Gluon to a new device, it might happen that the profile name is un-
-known. Best practise is to generate an image first by using an arbitrary value
+While porting Gluon to a new device, it might happen that the profile name is
+unknown. Best practise is to generate an image first by using an arbitrary value
 and then executing the lua command on the device and use its output from then on.
 
 The second parameter defines the name of the image files generated by OpenWrt. Usually,
 it is also the OpenWrt profile name; for devices that still use the old image build
 code, a third parameter with the OpenWrt profile name can be passed. The profile names
-can be found in the image Makefiles in ``lede/target/linux/<target>/image/Makefile``.
+can be found in the image Makefiles in ``openwrt/target/linux/<target>/image/Makefile``.
 
 Examples::
 
diff --git a/docs/dev/site_library.rst b/docs/dev/site_library.rst
index 991e3cb5237764b3786e379a77c09c751dbe6d12..eaac97fb5ee7d7361bb34dbf299cf098045c8156 100644
--- a/docs/dev/site_library.rst
+++ b/docs/dev/site_library.rst
@@ -11,7 +11,7 @@ from Lua scripts. Example:
 
 The *site* object in this example does not directly represent the *site.conf* data structure;
 instead, it is wrapped in a way that makes it more convenient to access deeply nested elements.
-To access the the underlying values, they must be unwrapped using the function call notation
+To access the underlying values, they must be unwrapped using the function call notation
 (the ``()`` after ``site.wifi24.ap.ssid`` in the example).
 
 The wrapper objects have two advantages over simple Lua tables:
diff --git a/docs/dev/wan.rst b/docs/dev/wan.rst
index 9742bf2b78456fbc09eb6ecb09279612aaf44c05..86455e915b2d8418f70f3f5aaa555cb86a6a3cdf 100644
--- a/docs/dev/wan.rst
+++ b/docs/dev/wan.rst
@@ -5,7 +5,7 @@ As the WAN port of a node will be connected to a user's private network, it
 is essential that the node only uses the WAN when it is absolutely necessary.
 There are two cases in which the WAN port is used:
 
-* Mesh VPN (package ``gluon-mesh-vpn-fastd``
+* Mesh VPN (package ``gluon-mesh-vpn-fastd``)
 * DNS to resolve the VPN servers' addresses (package ``gluon-wan-dnsmasq``)
 
 After the VPN connection has been established, the node should be able to reach
diff --git a/docs/dev/web/controller.rst b/docs/dev/web/controller.rst
index 9bea74eb34e8ee88433bce9c18199149497854a6..3f63ef01a46c431e570c1a8675712d9ef37e402f 100644
--- a/docs/dev/web/controller.rst
+++ b/docs/dev/web/controller.rst
@@ -71,7 +71,7 @@ Useful functions:
     values for the given key.
   - *status* (*code*, *message*): Writes the HTTP status to the reply. Has no effect
     if a status has already been sent or non-header data has been written.
-  - *header* (*key*, *value*): Adds an HTTP header to the reply to be sent to to
+  - *header* (*key*, *value*): Adds an HTTP header to the reply to be sent to
     the client. Has no effect when non-header data has already been written.
   - *prepare_content* (*mime*): Sets the *Content-Type* header to the given MIME
     type, potentially setting additional headers or modifying the MIME type to
diff --git a/docs/features/autoupdater.rst b/docs/features/autoupdater.rst
index 840563a732c7bbd40493aa2e5f7d33f9748ac766..014ee59f55a5eecd760c72457bd21a65fda748f5 100644
--- a/docs/features/autoupdater.rst
+++ b/docs/features/autoupdater.rst
@@ -39,8 +39,8 @@ A fully automated nightly build could use the following commands:
     make update
     make clean GLUON_TARGET=ar71xx-generic
     NUM_CORES_PLUS_ONE=$(expr $(nproc) + 1)
-    make -j$NUM_CORES_PLUS_ONE GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental
-    make manifest GLUON_BRANCH=$GLUON_BRANCH GLUON_RELEASE=$GLUON_RELEASE
+    make -j$NUM_CORES_PLUS_ONE GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental GLUON_RELEASE=$GLUON_RELEASE
+    make manifest GLUON_BRANCH=experimental GLUON_RELEASE=$GLUON_RELEASE
     contrib/sign.sh $SECRETKEY output/images/sysupgrade/experimental.manifest
 
     rm -rf /where/to/put/this/experimental
diff --git a/docs/features/configmode.rst b/docs/features/configmode.rst
index a6e8d9bab1eb7b2954ccecab425a71bde5eb4e34..2a09ecd8e1ebdcb52a6323c06cec2261504adb41 100644
--- a/docs/features/configmode.rst
+++ b/docs/features/configmode.rst
@@ -15,7 +15,7 @@ Activating Config Mode
 
 Config Mode is automatically entered at the first boot. You can re-enter
 Config Mode by pressing and holding the RESET/WPS button for about three
-seconds. The device should reboot (all LEDs will turn of briefly) and 
+seconds. The device should reboot (all LEDs will turn off briefly) and
 Config Mode will be available.
 
 
diff --git a/docs/features/multidomain.rst b/docs/features/multidomain.rst
index 628873c8c274d725e500ddcdda598e91da380d18..89a0a8df34c9544a9e133cef1ef6da57ce9d20f6 100644
--- a/docs/features/multidomain.rst
+++ b/docs/features/multidomain.rst
@@ -161,7 +161,7 @@ site.conf only variables
 
    -  mesh_vpn.fastd.syslog_level
    -  wifi*.supported_rates
-   -  wifi*.basic_rates
+   -  wifi*.basic_rate
    -  timezone
    -  regdom
 
diff --git a/docs/features/private-wlan.rst b/docs/features/private-wlan.rst
index cbf7f0e1d63d3b1d9c6f156e93588ce0010221df..68fe3b87d8ce6e9efe2a6f8fef01973393a4f9d9 100644
--- a/docs/features/private-wlan.rst
+++ b/docs/features/private-wlan.rst
@@ -19,7 +19,7 @@ You may also enable a private WLAN using the command line::
   uci set wireless.wan_radio$RID.ssid="$SSID"
   uci set wireless.wan_radio$RID.key="$KEY"
   uci set wireless.wan_radio$RID.disabled=0
-  uci set wireless.wan_radio$RID.macaddr="$($(echo "lua -e print(require('gluon.util').generate_mac(3+4*$RID))"))"
+  uci set wireless.wan_radio$RID.macaddr=$(lua -e "print(require('gluon.util').generate_mac(3+4*$RID))")
   uci commit
   wifi
 
diff --git a/docs/user/getting_started.rst b/docs/user/getting_started.rst
index c7c9c4e332d6e347accfc945e0abb6c0269021f3..ba1bf0be162a3eeb36baaeb64986d4a501c45d77 100644
--- a/docs/user/getting_started.rst
+++ b/docs/user/getting_started.rst
@@ -186,9 +186,6 @@ GLUON_TARGET
 Special variables
 .................
 
-GLUON_BUILDDIR
-  Working directory during build. Defaults to ``build``.
-
 GLUON_IMAGEDIR
   Path where images will be stored. Defaults to ``$(GLUON_OUTPUTDIR)/images``.
 
diff --git a/docs/user/site.rst b/docs/user/site.rst
index 69353a3219be4f5e41332a2a9cbc9c359b160a04..95ff562f95088739cd22675543ac238c15846df9 100644
--- a/docs/user/site.rst
+++ b/docs/user/site.rst
@@ -69,7 +69,7 @@ timezone
       -- Europe/Berlin
       timezone = 'CET-1CEST,M3.5.0,M10.5.0/3'
 
-ntp_server
+ntp_servers
     List of NTP servers available in your community or used by your community, e.g.:
     ::
 
@@ -661,7 +661,7 @@ Site modules
 The file ``modules`` in the site repository is completely optional and can be used
 to supply additional package feeds from which packages are built. The git repositories
 specified here are retrieved in addition to the default feeds when ``make update``
-it called.
+is called.
 
 This file's format is very similar to the toplevel ``modules`` file of the Gluon
 tree, with the important different that the list of feeds must be assigned to
diff --git a/docs/user/x86.rst b/docs/user/x86.rst
index a65edfcc7f6524299f348fc3990f3e37de06f59d..0aadee43490c2d5b614f2053669eca07699f9f3f 100644
--- a/docs/user/x86.rst
+++ b/docs/user/x86.rst
@@ -19,8 +19,8 @@ The following targets for x86 images exist:
     * `virtualbox` (VDI image)
     * `vmware` (VMDK image)
 
-    These images only differ in the image file format, the content is the same. Therefore there is
-    only a single `x86-generic` sysupgrade image instead of three.
+    These images differ in the image file format, the content is the same. Therefore
+    a single `x86-generic` sysupgrade image is provided, only.
 
 `x86-geode`
     x86 image for Geode CPUs.