diff --git a/acceptance/openstack/objectstorage/v1/containers_test.go b/acceptance/openstack/objectstorage/v1/containers_test.go
index 8f80522..4e361aa 100644
--- a/acceptance/openstack/objectstorage/v1/containers_test.go
+++ b/acceptance/openstack/objectstorage/v1/containers_test.go
@@ -46,12 +46,7 @@
 
 	// List the numContainer names that were just created. To just list those,
 	// the 'prefix' parameter is used.
-	pager := containers.List(client, containers.ListOpts{Full: true, Prefix: "gophercloud-test-container-"})
-	if pager.Err != nil {
-		t.Error(err)
-		return
-	}
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = containers.List(client, containers.ListOpts{Full: true, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
 		containerList, err := containers.ExtractInfo(page)
 		if err != nil {
 			t.Error(err)
@@ -68,8 +63,7 @@
 	}
 
 	// List the info for the numContainer containers that were created.
-	pager = containers.List(client, containers.ListOpts{Full: false, Prefix: "gophercloud-test-container-"})
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = containers.List(client, containers.ListOpts{Full: false, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
 		containerList, err := containers.ExtractNames(page)
 		if err != nil {
 			return false, err
diff --git a/acceptance/openstack/objectstorage/v1/objects_test.go b/acceptance/openstack/objectstorage/v1/objects_test.go
index 66cb8e7..b8dfa40 100644
--- a/acceptance/openstack/objectstorage/v1/objects_test.go
+++ b/acceptance/openstack/objectstorage/v1/objects_test.go
@@ -64,12 +64,8 @@
 		}
 	}()
 
-	pager := objects.List(client, cName, objects.ListOpts{Full: false, Prefix: "test-object-"})
-	if pager.Err != nil {
-		t.Fatalf("Pager error: %v", pager.Err)
-	}
 	ons := make([]string, 0, len(oNames))
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = objects.List(client, cName, objects.ListOpts{Full: false, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
 		names, err := objects.ExtractNames(page)
 		if err != nil {
 			return false, err
@@ -87,12 +83,8 @@
 		return
 	}
 
-	pager = objects.List(client, cName, objects.ListOpts{Full: true, Prefix: "test-object-"})
-	if pager.Err != nil {
-		t.Fatalf("Pager error: %v", pager.Err)
-	}
 	ois := make([]objects.Object, 0, len(oNames))
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = objects.List(client, cName, objects.ListOpts{Full: true, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
 		info, err := objects.ExtractInfo(page)
 		if err != nil {
 			return false, nil
