diff --git a/openstack/client.go b/openstack/client.go
index 7279bca..39d39a8 100644
--- a/openstack/client.go
+++ b/openstack/client.go
@@ -31,12 +31,8 @@
 	u.Path, u.RawQuery, u.Fragment = "", "", ""
 	base := u.String()
 
-	if !strings.HasSuffix(endpoint, "/") {
-		endpoint = endpoint + "/"
-	}
-	if !strings.HasSuffix(base, "/") {
-		base = base + "/"
-	}
+	endpoint = normalizeURL(endpoint)
+	base = normalizeURL(base)
 
 	if hadPath {
 		return &gophercloud.ProviderClient{
@@ -155,9 +151,9 @@
 	for _, endpoint := range endpoints {
 		switch opts.Availability {
 		case gophercloud.AvailabilityPublic:
-			return endpoint.PublicURL, nil
+			return normalizeURL(endpoint.PublicURL), nil
 		case gophercloud.AvailabilityInternal:
-			return endpoint.InternalURL, nil
+			return normalizeURL(endpoint.InternalURL), nil
 		default:
 			return "", fmt.Errorf("Unexpected availability in endpoint query: %s", opts.Availability)
 		}
@@ -195,11 +191,6 @@
 }
 
 func v3endpointLocator(v3Client *gophercloud.ServiceClient, opts gophercloud.EndpointOpts) (string, error) {
-	// Default Availability to InterfacePublic, if it isn't provided.
-	if opts.Availability == "" {
-		opts.Availability = gophercloud.AvailabilityPublic
-	}
-
 	// Discover the service we're interested in.
 	serviceResults, err := services3.List(v3Client, services3.ListOpts{ServiceType: opts.Type})
 	if err != nil {
@@ -264,7 +255,15 @@
 
 	endpoint := endpoints[0]
 
-	return endpoint.URL, nil
+	return normalizeURL(endpoint.URL), nil
+}
+
+// normalizeURL ensures that each endpoint URL has a closing `/`, as expected by ServiceClient.
+func normalizeURL(url string) string {
+	if !strings.HasSuffix(url, "/") {
+		return url + "/"
+	}
+	return url
 }
 
 // NewIdentityV2 creates a ServiceClient that may be used to interact with the v2 identity service.
