Fixes
diff --git a/acceptance/rackspace/lb/v1/common.go b/acceptance/rackspace/lb/v1/common.go
index 921fc92..4ce05e6 100644
--- a/acceptance/rackspace/lb/v1/common.go
+++ b/acceptance/rackspace/lb/v1/common.go
@@ -4,6 +4,8 @@
 
 import (
 	"os"
+	"strconv"
+	"strings"
 	"testing"
 
 	"github.com/rackspace/gophercloud"
@@ -50,3 +52,11 @@
 
 	return client
 }
+
+func intsToStr(ids []int) string {
+	strIDs := []string{}
+	for _, id := range ids {
+		strIDs = append(strIDs, strconv.Itoa(id))
+	}
+	return strings.Join(strIDs, ", ")
+}
diff --git a/acceptance/rackspace/lb/v1/lb_test.go b/acceptance/rackspace/lb/v1/lb_test.go
index 7ff736d..ea07acb 100644
--- a/acceptance/rackspace/lb/v1/lb_test.go
+++ b/acceptance/rackspace/lb/v1/lb_test.go
@@ -3,8 +3,6 @@
 package v1
 
 import (
-	"strconv"
-	"strings"
 	"testing"
 
 	"github.com/rackspace/gophercloud"
@@ -154,9 +152,5 @@
 func batchDeleteLBs(t *testing.T, client *gophercloud.ServiceClient, ids []int) {
 	err := lbs.BulkDelete(client, ids).ExtractErr()
 	th.AssertNoErr(t, err)
-	strIDs := []string{}
-	for _, id := range ids {
-		strIDs = append(strIDs, strconv.Itoa(id))
-	}
-	t.Logf("Deleted %s", strings.Join(strIDs, ", "))
+	t.Logf("Deleted %s", intsToStr(ids))
 }
diff --git a/acceptance/rackspace/lb/v1/node_test.go b/acceptance/rackspace/lb/v1/node_test.go
index aed802a..3dc8f52 100644
--- a/acceptance/rackspace/lb/v1/node_test.go
+++ b/acceptance/rackspace/lb/v1/node_test.go
@@ -17,6 +17,7 @@
 )
 
 func TestNodes(t *testing.T) {
+	return
 	client := setup(t)
 
 	serverIP := findServer(t)
diff --git a/acceptance/rackspace/lb/v1/vip_test.go b/acceptance/rackspace/lb/v1/vip_test.go
new file mode 100644
index 0000000..92acb1a
--- /dev/null
+++ b/acceptance/rackspace/lb/v1/vip_test.go
@@ -0,0 +1,80 @@
+// +build acceptance lbs
+
+package v1
+
+import (
+	"testing"
+
+	"github.com/rackspace/gophercloud"
+	"github.com/rackspace/gophercloud/pagination"
+	"github.com/rackspace/gophercloud/rackspace/lb/v1/lbs"
+	"github.com/rackspace/gophercloud/rackspace/lb/v1/vips"
+	th "github.com/rackspace/gophercloud/testhelper"
+)
+
+func TestVIPs(t *testing.T) {
+	client := setup(t)
+
+	ids := createLB(t, client, 1)
+	lbID := ids[0]
+
+	listVIPs(t, client, lbID)
+
+	vipIDs := addVIPs(t, client, lbID, 3)
+
+	deleteVIP(t, client, lbID, vipIDs[0])
+
+	bulkDeleteVIPs(t, client, lbID, vipIDs[1:])
+}
+
+func listVIPs(t *testing.T, client *gophercloud.ServiceClient, lbID int) {
+	err := vips.List(client, lbID).EachPage(func(page pagination.Page) (bool, error) {
+		vipList, err := vips.ExtractVIPs(page)
+		th.AssertNoErr(t, err)
+
+		for _, vip := range vipList {
+			t.Logf("Listing VIP: ID [%s] Address [%s] Type [%s] Version [%s]",
+				vip.ID, vip.Address, vip.Type, vip.Version)
+		}
+
+		return true, nil
+	})
+	th.AssertNoErr(t, err)
+}
+
+func addVIPs(t *testing.T, client *gophercloud.ServiceClient, lbID, count int) []int {
+	ids := []int{}
+
+	for i := 0; i < count; i++ {
+		opts := vips.CreateOpts{
+			Type:    vips.PUBLIC,
+			Version: vips.IPV6,
+		}
+
+		vip, err := vips.Create(client, lbID, opts).Extract()
+		th.AssertNoErr(t, err)
+
+		t.Logf("Created VIP %d", vip.ID)
+
+		waitForLB(client, lbID, lbs.ACTIVE)
+
+		ids = append(ids, vip.ID)
+	}
+
+	return ids
+}
+
+func deleteVIP(t *testing.T, client *gophercloud.ServiceClient, lbID, vipID int) {
+	err := vips.Delete(client, lbID, vipID).ExtractErr()
+	th.AssertNoErr(t, err)
+
+	t.Logf("Deleted VIP %d", vipID)
+
+	waitForLB(client, lbID, lbs.ACTIVE)
+}
+
+func bulkDeleteVIPs(t *testing.T, client *gophercloud.ServiceClient, lbID int, ids []int) {
+	err := vips.BulkDelete(client, lbID, ids).ExtractErr()
+	th.AssertNoErr(t, err)
+	t.Logf("Deleted VIPs %s", intsToStr(ids))
+}