diff --git a/openstack/compute/v2/flavors/requests.go b/openstack/compute/v2/flavors/requests.go
index f34a9ea..6d20adf 100644
--- a/openstack/compute/v2/flavors/requests.go
+++ b/openstack/compute/v2/flavors/requests.go
@@ -1,6 +1,7 @@
 package flavors
 
 import (
+	"github.com/mitchellh/mapstructure"
 	"github.com/racker/perigee"
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/pagination"
@@ -8,7 +9,7 @@
 
 // ListPage contains a single page of the response from a List call.
 type ListPage struct {
-	pagination.MarkerPageBase
+	pagination.LinkedPageBase
 }
 
 // IsEmpty determines if a page contains any results.
@@ -20,16 +21,33 @@
 	return len(flavors) == 0, nil
 }
 
-// LastMarker returns the ID field of the final result from this page, to be used as the marker for the next.
-func (p ListPage) LastMarker() (string, error) {
-	flavors, err := ExtractFlavors(p)
+// NextPageURL uses the response's embedded link reference to navigate to the next page of results.
+func (p ListPage) NextPageURL() (string, error) {
+	type link struct {
+		Href string `mapstructure:"href"`
+		Rel  string `mapstructure:"rel"`
+	}
+	type resp struct {
+		Links []link `mapstructure:"flavors_links"`
+	}
+
+	var r resp
+	err := mapstructure.Decode(p.Body, &r)
 	if err != nil {
 		return "", err
 	}
-	if len(flavors) == 0 {
+
+	var url string
+	for _, l := range r.Links {
+		if l.Rel == "next" {
+			url = l.Href
+		}
+	}
+	if url == "" {
 		return "", nil
 	}
-	return flavors[len(flavors)-1].ID, nil
+
+	return url, nil
 }
 
 // ListFilterOptions helps control the results returned by the List() function.
@@ -56,9 +74,7 @@
 // See ListFilterOptions for more details.
 func List(client *gophercloud.ServiceClient, lfo ListFilterOptions) pagination.Pager {
 	createPage := func(r pagination.LastHTTPResponse) pagination.Page {
-		p := ListPage{pagination.MarkerPageBase{LastHTTPResponse: r}}
-		p.MarkerPageBase.Owner = p
-		return p
+		return ListPage{pagination.LinkedPageBase{LastHTTPResponse: r}}
 	}
 
 	return pagination.NewPager(client, getListURL(client, lfo), createPage)
diff --git a/openstack/compute/v2/flavors/requests_test.go b/openstack/compute/v2/flavors/requests_test.go
index a66b54c..e1b6b4f 100644
--- a/openstack/compute/v2/flavors/requests_test.go
+++ b/openstack/compute/v2/flavors/requests_test.go
@@ -53,7 +53,8 @@
 						],
 						"flavors_links": [
 							{
-								"href": "%s/flavors?marker=2"
+								"href": "%s/flavors/detail?marker=2",
+								"rel": "next"
 							}
 						]
 					}
