diff --git a/openstack/networking/v2/networks/requests.go b/openstack/networking/v2/networks/requests.go
index de34989..8cfe4e0 100644
--- a/openstack/networking/v2/networks/requests.go
+++ b/openstack/networking/v2/networks/requests.go
@@ -30,7 +30,7 @@
 // ListOptsBuilder allows extensions to add additional parameters to the
 // List request.
 type ListOptsBuilder interface {
-	ToNetworkListString() (string, error)
+	ToNetworkListQuery() (string, error)
 }
 
 // ListOpts allows the filtering and sorting of paginated collections through
@@ -51,8 +51,8 @@
 	SortDir      string `q:"sort_dir"`
 }
 
-// ToNetworkListString formats a ListOpts into a query string.
-func (opts ListOpts) ToNetworkListString() (string, error) {
+// ToNetworkListQuery formats a ListOpts into a query string.
+func (opts ListOpts) ToNetworkListQuery() (string, error) {
 	q, err := gophercloud.BuildQueryString(opts)
 	if err != nil {
 		return "", err
@@ -66,7 +66,7 @@
 func List(c *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager {
 	url := listURL(c)
 	if opts != nil {
-		query, err := opts.ToNetworkListString()
+		query, err := opts.ToNetworkListQuery()
 		if err != nil {
 			return pagination.Pager{Err: err}
 		}
diff --git a/openstack/networking/v2/ports/requests.go b/openstack/networking/v2/ports/requests.go
index afa37f5..c846de9 100644
--- a/openstack/networking/v2/ports/requests.go
+++ b/openstack/networking/v2/ports/requests.go
@@ -23,7 +23,7 @@
 // ListOptsBuilder allows extensions to add additional parameters to the
 // List request.
 type ListOptsBuilder interface {
-	ToPortListString() (string, error)
+	ToPortListQuery() (string, error)
 }
 
 // ListOpts allows the filtering and sorting of paginated collections through
@@ -47,8 +47,8 @@
 	SortDir      string `q:"sort_dir"`
 }
 
-// ToPortListString formats a ListOpts into a query string.
-func (opts ListOpts) ToPortListString() (string, error) {
+// ToPortListQuery formats a ListOpts into a query string.
+func (opts ListOpts) ToPortListQuery() (string, error) {
 	q, err := gophercloud.BuildQueryString(opts)
 	if err != nil {
 		return "", err
@@ -66,7 +66,7 @@
 func List(c *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager {
 	url := listURL(c)
 	if opts != nil {
-		query, err := opts.ToPortListString()
+		query, err := opts.ToPortListQuery()
 		if err != nil {
 			return pagination.Pager{Err: err}
 		}
diff --git a/openstack/networking/v2/subnets/requests.go b/openstack/networking/v2/subnets/requests.go
index e164583..8eed269 100644
--- a/openstack/networking/v2/subnets/requests.go
+++ b/openstack/networking/v2/subnets/requests.go
@@ -23,7 +23,7 @@
 // ListOptsBuilder allows extensions to add additional parameters to the
 // List request.
 type ListOptsBuilder interface {
-	ToSubnetListString() (string, error)
+	ToSubnetListQuery() (string, error)
 }
 
 // ListOpts allows the filtering and sorting of paginated collections through
@@ -46,8 +46,8 @@
 	SortDir    string `q:"sort_dir"`
 }
 
-// ToSubnetListString formats a ListOpts into a query string.
-func (opts ListOpts) ToSubnetListString() (string, error) {
+// ToSubnetListQuery formats a ListOpts into a query string.
+func (opts ListOpts) ToSubnetListQuery() (string, error) {
 	q, err := gophercloud.BuildQueryString(opts)
 	if err != nil {
 		return "", err
@@ -65,7 +65,7 @@
 func List(c *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager {
 	url := listURL(c)
 	if opts != nil {
-		query, err := opts.ToSubnetListString()
+		query, err := opts.ToSubnetListQuery()
 		if err != nil {
 			return pagination.Pager{Err: err}
 		}
