Clarify which statuses are reached at which points.
diff --git a/acceptance/openstack/compute/v2/servers_test.go b/acceptance/openstack/compute/v2/servers_test.go
index f5e800f..e1579ce 100644
--- a/acceptance/openstack/compute/v2/servers_test.go
+++ b/acceptance/openstack/compute/v2/servers_test.go
@@ -273,48 +273,41 @@
 	}
 }
 
-func resizeServer(t *testing.T, client *gophercloud.ServiceClient) *servers.Server {
-	choices, err := ComputeChoicesFromEnv()
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	server, err := createServer(t, client, choices)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	if err = waitForStatus(client, server, "ACTIVE"); err != nil {
+func resizeServer(t *testing.T, client *gophercloud.ServiceClient, server *servers.Server, choices *ComputeChoices) {
+	if err := waitForStatus(client, server, "ACTIVE"); err != nil {
 		t.Fatal(err)
 	}
 
 	t.Logf("Attempting to resize server [%s]", server.ID)
 
-	if err = servers.Resize(client, server.ID, choices.FlavorIDResize); err != nil {
+	if err := servers.Resize(client, server.ID, choices.FlavorIDResize); err != nil {
 		t.Fatal(err)
 	}
 
-	if err = waitForStatus(client, server, "RESIZE"); err != nil {
+	if err := waitForStatus(client, server, "VERIFY_RESIZE"); err != nil {
 		t.Fatal(err)
 	}
-
-	if err = waitForStatus(client, server, "VERIFY_RESIZE"); err != nil {
-		t.Fatal(err)
-	}
-
-	return server
 }
 
 func TestActionResizeConfirm(t *testing.T) {
 	t.Parallel()
 
+	choices, err := ComputeChoicesFromEnv()
+	if err != nil {
+		t.Fatal(err)
+	}
+
 	client, err := newClient()
 	if err != nil {
 		t.Fatalf("Unable to create a compute client: %v", err)
 	}
 
-	server := resizeServer(t, client)
+	server, err := createServer(t, client, choices)
+	if err != nil {
+		t.Fatal(err)
+	}
 	defer servers.Delete(client, server.ID)
+	resizeServer(t, client, server, choices)
 
 	t.Logf("Attempting to confirm resize for server %s", server.ID)
 
@@ -330,17 +323,22 @@
 func TestActionResizeRevert(t *testing.T) {
 	t.Parallel()
 
+	choices, err := ComputeChoicesFromEnv()
+	if err != nil {
+		t.Fatal(err)
+	}
+
 	client, err := newClient()
 	if err != nil {
 		t.Fatalf("Unable to create a compute client: %v", err)
 	}
 
-	server := resizeServer(t, client)
-	defer servers.Delete(client, server.ID)
-
-	if err = waitForStatus(client, server, "ACTIVE"); err != nil {
+	server, err := createServer(t, client, choices)
+	if err != nil {
 		t.Fatal(err)
 	}
+	defer servers.Delete(client, server.ID)
+	resizeServer(t, client, server, choices)
 
 	t.Logf("Attempting to revert resize for server %s", server.ID)
 
@@ -348,10 +346,6 @@
 		t.Fatal(err)
 	}
 
-	if err = waitForStatus(client, server, "REVERT_RESIZE"); err != nil {
-		t.Fatal(err)
-	}
-
 	if err = waitForStatus(client, server, "ACTIVE"); err != nil {
 		t.Fatal(err)
 	}
diff --git a/openstack/compute/v2/servers/requests.go b/openstack/compute/v2/servers/requests.go
index 9e65817..da93ff1 100644
--- a/openstack/compute/v2/servers/requests.go
+++ b/openstack/compute/v2/servers/requests.go
@@ -49,7 +49,7 @@
 		return p
 	}
 
-	return pagination.NewPager(client, getListURL(client), createPage)
+	return pagination.NewPager(client, getDetailURL(client), createPage)
 }
 
 // Create requests a server to be provisioned to the user in the current tenant.
@@ -100,12 +100,16 @@
 
 // ChangeAdminPassword alters the administrator or root password for a specified server.
 func ChangeAdminPassword(client *gophercloud.ServiceClient, id, newPassword string) error {
+	var req struct {
+		ChangePassword struct {
+			AdminPass string `json:"adminPass"`
+		} `json:"changePassword"`
+	}
+
+	req.ChangePassword.AdminPass = newPassword
+
 	_, err := perigee.Request("POST", getActionURL(client, id), perigee.Options{
-		ReqBody: struct {
-			C map[string]string `json:"changePassword"`
-		}{
-			map[string]string{"adminPass": newPassword},
-		},
+		ReqBody:     req,
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 		OkCodes:     []int{202},
 	})
diff --git a/openstack/compute/v2/servers/urls.go b/openstack/compute/v2/servers/urls.go
index 3440de1..7cfda39 100644
--- a/openstack/compute/v2/servers/urls.go
+++ b/openstack/compute/v2/servers/urls.go
@@ -3,11 +3,11 @@
 import "github.com/rackspace/gophercloud"
 
 func getListURL(client *gophercloud.ServiceClient) string {
-	return client.ServiceURL("servers", "detail")
+	return client.ServiceURL("servers")
 }
 
-func getCreateURL(client *gophercloud.ServiceClient) string {
-	return client.ServiceURL("servers")
+func getDetailURL(client *gophercloud.ServiceClient) string {
+	return client.ServiceURL("servers", "detail")
 }
 
 func getServerURL(client *gophercloud.ServiceClient, id string) string {