diff --git a/openstack/compute/v2/extensions/diskconfig/doc.go b/openstack/compute/v2/extensions/diskconfig/doc.go
index a971b35..80785fa 100644
--- a/openstack/compute/v2/extensions/diskconfig/doc.go
+++ b/openstack/compute/v2/extensions/diskconfig/doc.go
@@ -1,3 +1,3 @@
-// Package diskconfig provides information and interaction with the the Disk
+// Package diskconfig provides information and interaction with the Disk
 // Config extension that works with the OpenStack Compute service.
 package diskconfig
diff --git a/openstack/compute/v2/flavors/results.go b/openstack/compute/v2/flavors/results.go
index 389bd7f..8dddd70 100644
--- a/openstack/compute/v2/flavors/results.go
+++ b/openstack/compute/v2/flavors/results.go
@@ -12,7 +12,7 @@
 // ErrCannotInterpret is returned by an Extract call if the response body doesn't have the expected structure.
 var ErrCannotInterpet = errors.New("Unable to interpret a response body.")
 
-// GetResult temporarily holds the reponse from a Get call.
+// GetResult temporarily holds the response from a Get call.
 type GetResult struct {
 	gophercloud.Result
 }
diff --git a/openstack/compute/v2/images/requests.go b/openstack/compute/v2/images/requests.go
index 1422cd0..bc61ddb 100644
--- a/openstack/compute/v2/images/requests.go
+++ b/openstack/compute/v2/images/requests.go
@@ -59,7 +59,7 @@
 }
 
 // Get acquires additional detail about a specific image by ID.
-// Use ExtractImage() to intepret the result as an openstack Image.
+// Use ExtractImage() to interpret the result as an openstack Image.
 func Get(client *gophercloud.ServiceClient, id string) GetResult {
 	var result GetResult
 	_, result.Err = perigee.Request("GET", getURL(client, id), perigee.Options{
diff --git a/openstack/compute/v2/servers/requests.go b/openstack/compute/v2/servers/requests.go
index 3465cbc..95a4188 100644
--- a/openstack/compute/v2/servers/requests.go
+++ b/openstack/compute/v2/servers/requests.go
@@ -225,7 +225,7 @@
 	return result
 }
 
-// UpdateOptsBuilder allows extentions to add additional attributes to the Update request.
+// UpdateOptsBuilder allows extensions to add additional attributes to the Update request.
 type UpdateOptsBuilder interface {
 	ToServerUpdateMap() map[string]interface{}
 }
diff --git a/openstack/identity/v3/endpoints/requests.go b/openstack/identity/v3/endpoints/requests.go
index 66bdb0e..f5f8b0c 100644
--- a/openstack/identity/v3/endpoints/requests.go
+++ b/openstack/identity/v3/endpoints/requests.go
@@ -68,7 +68,7 @@
 	return result
 }
 
-// ListOpts allows finer control over the the endpoints returned by a List call.
+// ListOpts allows finer control over the endpoints returned by a List call.
 // All fields are optional.
 type ListOpts struct {
 	Availability gophercloud.Availability
diff --git a/openstack/networking/v2/extensions/layer3/floatingips/results.go b/openstack/networking/v2/extensions/layer3/floatingips/results.go
index 1519ad2..a1c7afe 100644
--- a/openstack/networking/v2/extensions/layer3/floatingips/results.go
+++ b/openstack/networking/v2/extensions/layer3/floatingips/results.go
@@ -11,7 +11,7 @@
 // FloatingIP represents a floating IP resource. A floating IP is an external
 // IP address that is mapped to an internal port and, optionally, a specific
 // IP address on a private network. In other words, it enables access to an
-// instance on a private network from an external network. For thsi reason,
+// instance on a private network from an external network. For this reason,
 // floating IPs can only be defined on networks where the `router:external'
 // attribute (provided by the external network extension) is set to True.
 type FloatingIP struct {
diff --git a/openstack/networking/v2/ports/requests.go b/openstack/networking/v2/ports/requests.go
index 8210801..3399907 100644
--- a/openstack/networking/v2/ports/requests.go
+++ b/openstack/networking/v2/ports/requests.go
@@ -61,7 +61,7 @@
 // the returned collection for greater efficiency.
 //
 // Default policy settings return only those ports that are owned by the tenant
-// who submits the request, unless the request is submitted by an user with
+// who submits the request, unless the request is submitted by a user with
 // administrative rights.
 func List(c *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager {
 	url := listURL(c)
diff --git a/openstack/networking/v2/subnets/requests.go b/openstack/networking/v2/subnets/requests.go
index 2e6d670..cd7c663 100644
--- a/openstack/networking/v2/subnets/requests.go
+++ b/openstack/networking/v2/subnets/requests.go
@@ -60,7 +60,7 @@
 // the returned collection for greater efficiency.
 //
 // Default policy settings return only those subnets that are owned by the tenant
-// who submits the request, unless the request is submitted by an user with
+// who submits the request, unless the request is submitted by a user with
 // administrative rights.
 func List(c *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager {
 	url := listURL(c)
diff --git a/openstack/objectstorage/v1/objects/requests_test.go b/openstack/objectstorage/v1/objects/requests_test.go
index 3935e1b..c3c28a7 100644
--- a/openstack/objectstorage/v1/objects/requests_test.go
+++ b/openstack/objectstorage/v1/objects/requests_test.go
@@ -16,6 +16,7 @@
 	HandleDownloadObjectSuccessfully(t)
 
 	response := Download(fake.ServiceClient(), "testContainer", "testObject", nil)
+	defer response.Body.Close()
 
 	// Check reader
 	buf := bytes.NewBuffer(make([]byte, 0))
diff --git a/openstack/utils/choose_version.go b/openstack/utils/choose_version.go
index 753f8f8..a0d5b26 100644
--- a/openstack/utils/choose_version.go
+++ b/openstack/utils/choose_version.go
@@ -20,7 +20,7 @@
 	"stable":    true,
 }
 
-// ChooseVersion queries the base endpoint of a API to choose the most recent non-experimental alternative from a service's
+// ChooseVersion queries the base endpoint of an API to choose the most recent non-experimental alternative from a service's
 // published versions.
 // It returns the highest-Priority Version among the alternatives that are provided, as well as its corresponding endpoint.
 func ChooseVersion(identityBase string, identityEndpoint string, recognized []*Version) (*Version, string, error) {
