Use general (Provider|Service)Client structs.
diff --git a/openstack/identity/v3/services/requests.go b/openstack/identity/v3/services/requests.go
index a752d57..e9384e1 100644
--- a/openstack/identity/v3/services/requests.go
+++ b/openstack/identity/v3/services/requests.go
@@ -19,7 +19,7 @@
 	var resp response
 
 	_, err := perigee.Request("POST", getListURL(client), perigee.Options{
-		MoreHeaders: client.AuthenticatedHeaders(),
+		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 		ReqBody:     &req,
 		Results:     &resp,
 		OkCodes:     []int{201},
diff --git a/openstack/identity/v3/services/requests_test.go b/openstack/identity/v3/services/requests_test.go
index d2637c4..6592fc6 100644
--- a/openstack/identity/v3/services/requests_test.go
+++ b/openstack/identity/v3/services/requests_test.go
@@ -31,7 +31,7 @@
 	})
 
 	client := gophercloud.ServiceClient{
-		ProviderClient: gophercloud.ProviderClient{
+		Provider: &gophercloud.ProviderClient{
 			TokenID: "1111",
 		},
 		Endpoint: testhelper.Endpoint(),