diff --git a/acceptance/rackspace/monitoring/pkg.go b/acceptance/rackspace/monitoring/pkg.go
deleted file mode 100644
index de6924d..0000000
--- a/acceptance/rackspace/monitoring/pkg.go
+++ /dev/null
@@ -1,4 +0,0 @@
-// +build acceptance
-
-package monitoring
-
diff --git a/acceptance/rackspace/monitoring/rbac_test.go b/acceptance/rackspace/monitoring/rbac_test.go
deleted file mode 100644
index cd01891..0000000
--- a/acceptance/rackspace/monitoring/rbac_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-// +build acceptance
-
-package monitoring
-
-import (
-	"fmt"
-	identity "github.com/rackspace/gophercloud/openstack/identity/v2"
-	"github.com/rackspace/gophercloud/openstack/utils"
-	"github.com/rackspace/gophercloud/rackspace/monitoring"
-	"github.com/rackspace/gophercloud/rackspace/monitoring/notificationPlans"
-	"testing"
-)
-
-func TestRBACPermissions(t *testing.T) {
-	ao, err := utils.AuthOptions()
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	ao.AllowReauth = true
-	r, err := identity.Authenticate(ao)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	// Find the cloud monitoring API
-
-	sc, err := identity.GetServiceCatalog(r)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	ces, err := sc.CatalogEntries()
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	monUrl, err := findMonitoringEndpoint(ces)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	// Build ourselves an interface to cloud monitoring!
-
-	np := notificationPlans.NewClient(monitoring.Options{
-		Endpoint:       monUrl,
-		AuthOptions:    ao,
-		Authentication: r,
-	})
-
-	// Try to delete a bogus notification plan
-
-	dr, err := np.Delete("ajkhdlkajhdflkajshdf")
-	if err != nil {
-		fmt.Printf("%#v\n", err)
-	}
-	fmt.Printf("%#v\n", dr)
-}
-
-func findMonitoringEndpoint(ces []identity.CatalogEntry) (string, error) {
-	for _, ce := range ces {
-		if ce.Type == "rax:monitor" {
-			return ce.Endpoints[0].PublicURL, nil
-		}
-	}
-	return "", fmt.Errorf("No monitoring API in the service catalog")
-}
