diff --git a/runtimes/google/vsync/vsyncd.go b/runtimes/google/vsync/vsyncd.go
index fdd25b8..c6e84dd 100644
--- a/runtimes/google/vsync/vsyncd.go
+++ b/runtimes/google/vsync/vsyncd.go
@@ -9,6 +9,7 @@
 // log records to get in sync with the sender.
 import (
 	"fmt"
+	"strings"
 	"sync"
 	"time"
 
@@ -16,6 +17,7 @@
 
 	"veyron2/ipc"
 	"veyron2/naming"
+	"veyron2/security"
 	"veyron2/storage"
 	"veyron2/vlog"
 	"veyron2/vom"
@@ -49,6 +51,23 @@
 	hdlInitiator *syncInitiator
 }
 
+type syncDispatcher struct {
+	server ipc.Invoker
+	auth   security.Authorizer
+}
+
+// NewSyncDispatcher returns an object dispatcher.
+func NewSyncDispatcher(s interface{}, auth security.Authorizer) ipc.Dispatcher {
+	return &syncDispatcher{ipc.ReflectInvoker(s), auth}
+}
+
+func (d *syncDispatcher) Lookup(suffix string) (ipc.Invoker, security.Authorizer, error) {
+	if strings.HasSuffix(suffix, "sync") {
+		return d.server, d.auth, nil
+	}
+	return nil, nil, fmt.Errorf("Lookup:: failed on suffix: %s", suffix)
+}
+
 // NewSyncd creates a new syncd instance.
 //
 // Syncd concurrency: syncd initializes three goroutines at
diff --git a/runtimes/google/vsync/vsyncd/main.go b/runtimes/google/vsync/vsyncd/main.go
index c49de82..66c8633 100644
--- a/runtimes/google/vsync/vsyncd/main.go
+++ b/runtimes/google/vsync/vsyncd/main.go
@@ -6,7 +6,8 @@
 	"os"
 
 	"veyron/runtimes/google/vsync"
-	"veyron2/ipc"
+	vflag "veyron/security/flag"
+
 	"veyron2/rt"
 	"veyron2/vlog"
 )
@@ -38,10 +39,15 @@
 		vlog.Fatalf("syncd:: failure creating server: err %v", err)
 	}
 
-	// Register the "sync" prefix with the sync dispatcher.
+	// Create a new SyncService.
 	syncd := vsync.NewSyncd(*peerEndpoints, *peerDeviceIDs, *devid, *storePath, *vstoreEndpoint, *syncTick)
-	serverSync := vsync.NewServerSync(syncd)
-	dispatcher := ipc.SoloDispatcher(serverSync, nil)
+	syncService := vsync.NewServerSync(syncd)
+
+	// Create the authorizer.
+	auth := vflag.NewAuthorizerOrDie()
+
+	// Register the service.
+	syncDisp := vsync.NewSyncDispatcher(syncService, auth)
 
 	// Create an endpoint and begin listening.
 	if endpoint, err := s.Listen("tcp", *address); err == nil {
@@ -50,9 +56,9 @@
 		vlog.Fatalf("syncd:: error listening to service: err %v", err)
 	}
 
-	// Publish the vsync service. This will register it in the mount table and maintain the
-	// registration while the program runs.
-	if err := s.Serve("sync", dispatcher); err != nil {
+	// Publish the vsync service.
+	name := "global/vsync/" + *devid
+	if err := s.Serve(name, syncDisp); err != nil {
 		vlog.Fatalf("syncd: error publishing service: err %v", err)
 	}
 
