diff --git a/rackspace/lb/lb/fixtures.go b/rackspace/lb/lb/fixtures.go
index 5fbdee9..7cdcb0f 100644
--- a/rackspace/lb/lb/fixtures.go
+++ b/rackspace/lb/lb/fixtures.go
@@ -3,6 +3,7 @@
 import (
 	"fmt"
 	"net/http"
+	"strconv"
 	"testing"
 
 	th "github.com/rackspace/gophercloud/testhelper"
@@ -135,10 +136,26 @@
 	})
 }
 
-func mockDeleteLBResponse(t *testing.T) {
+func mockBatchDeleteLBResponse(t *testing.T, ids []int) {
 	th.Mux.HandleFunc("/loadbalancers", func(w http.ResponseWriter, r *http.Request) {
 		th.TestMethod(t, r, "DELETE")
 		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+
+		r.ParseForm()
+
+		for k, v := range ids {
+			fids := r.Form["id"]
+			th.AssertEquals(t, strconv.Itoa(v), fids[k])
+		}
+
+		w.WriteHeader(http.StatusAccepted)
+	})
+}
+
+func mockDeleteLBResponse(t *testing.T, id int) {
+	th.Mux.HandleFunc("/loadbalancers/"+strconv.Itoa(id), func(w http.ResponseWriter, r *http.Request) {
+		th.TestMethod(t, r, "DELETE")
+		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
 		w.WriteHeader(http.StatusAccepted)
 	})
 }
diff --git a/rackspace/lb/lb/requests.go b/rackspace/lb/lb/requests.go
index e2c5a01..0be2d4a 100644
--- a/rackspace/lb/lb/requests.go
+++ b/rackspace/lb/lb/requests.go
@@ -247,3 +247,14 @@
 
 	return res
 }
+
+func Delete(c *gophercloud.ServiceClient, id int) DeleteResult {
+	var res DeleteResult
+
+	_, res.Err = perigee.Request("DELETE", resourceURL(c, id), perigee.Options{
+		MoreHeaders: c.AuthenticatedHeaders(),
+		OkCodes:     []int{202},
+	})
+
+	return res
+}
diff --git a/rackspace/lb/lb/requests_test.go b/rackspace/lb/lb/requests_test.go
index 2f4572f..220f11e 100644
--- a/rackspace/lb/lb/requests_test.go
+++ b/rackspace/lb/lb/requests_test.go
@@ -116,12 +116,26 @@
 	th.AssertDeepEquals(t, expected, lb)
 }
 
-func TestBulkDelete(t *testing.T) {
+func TestBulkDeleteLBs(t *testing.T) {
 	th.SetupHTTP()
 	defer th.TeardownHTTP()
 
-	mockDeleteLBResponse(t)
+	ids := []int{12345, 67890}
 
-	err := BulkDelete(client.ServiceClient(), []int{12345, 67890}).ExtractErr()
+	mockBatchDeleteLBResponse(t, ids)
+
+	err := BulkDelete(client.ServiceClient(), ids).ExtractErr()
+	th.AssertNoErr(t, err)
+}
+
+func TestDeleteLB(t *testing.T) {
+	th.SetupHTTP()
+	defer th.TeardownHTTP()
+
+	id := 12345
+
+	mockDeleteLBResponse(t, id)
+
+	err := Delete(client.ServiceClient(), id).ExtractErr()
 	th.AssertNoErr(t, err)
 }
diff --git a/rackspace/lb/lb/urls.go b/rackspace/lb/lb/urls.go
index a11d6b9..bf02b02 100644
--- a/rackspace/lb/lb/urls.go
+++ b/rackspace/lb/lb/urls.go
@@ -1,11 +1,15 @@
 package lb
 
-import "github.com/rackspace/gophercloud"
+import (
+	"strconv"
+
+	"github.com/rackspace/gophercloud"
+)
 
 const path = "loadbalancers"
 
-func resourceURL(c *gophercloud.ServiceClient, id string) string {
-	return c.ServiceURL(path, id)
+func resourceURL(c *gophercloud.ServiceClient, id int) string {
+	return c.ServiceURL(path, strconv.Itoa(id))
 }
 
 func rootURL(c *gophercloud.ServiceClient) string {
