diff --git a/cmix/interface.go b/cmix/interface.go
index ef7afeccecf28ee239ee8adc5ea582b7c7e92bf5..a5db8b3cfe2089e94d03861769785ab99bd4390a 100644
--- a/cmix/interface.go
+++ b/cmix/interface.go
@@ -176,9 +176,6 @@ type Client interface {
 	// running. Multiple trackTriggers can be registered.
 	TrackServices(tracker message.ServicesTracker)
 
-	// GetServices retrieves the message.ServiceList.
-	GetServices() message.ServiceList
-
 	/* === In inProcess ===================================================== */
 	/* It is possible to receive a message over cMix before the fingerprints or
 	   triggers are registered. As a result, when handling fails, messages are
diff --git a/cmix/message/handler.go b/cmix/message/handler.go
index 510122ffb490f5d4d5912b9c9ffcb2694ab6a2f2..6a5baf55486860b3d14d5d2960acaa861dc18ba0 100644
--- a/cmix/message/handler.go
+++ b/cmix/message/handler.go
@@ -43,7 +43,6 @@ type Handler interface {
 	DeleteService(clientID *id.ID, toDelete Service, response Processor)
 	DeleteClientService(clientID *id.ID)
 	TrackServices(triggerTracker ServicesTracker)
-	GetServices() ServiceList
 }
 
 type handler struct {
diff --git a/cmix/message/serviceTracker.go b/cmix/message/serviceTracker.go
index 972646e42744dd49277934bc52d323a7c2a890bc..777c510f5bf7ebe0f36e59d4272620ecd545fa03 100644
--- a/cmix/message/serviceTracker.go
+++ b/cmix/message/serviceTracker.go
@@ -20,17 +20,13 @@ func (sm *ServicesManager) TrackServices(tracker ServicesTracker) {
 	sm.trackers = append(sm.trackers, tracker)
 }
 
-// GetServices retrieves the ServiceList from the ServicesManager.
-// This is effectively a serializing of the
-// ServicesManager's internal tmap.
-func (sm *ServicesManager) GetServices() ServiceList {
+// triggerServiceTracking triggers the tracking of services. Is it called when a
+// service is added or removed.
+func (sm *ServicesManager) triggerServiceTracking() {
 	sm.Mutex.Lock()
-	defer sm.Mutex.Unlock()
-	return sm.getServices()
-}
-
-// getServices is the non-thread-safe version of GetServices.
-func (sm *ServicesManager) getServices() ServiceList {
+	if len(sm.trackers) == 0 {
+		return
+	}
 	services := make(ServiceList)
 	for uid, tmap := range sm.tmap {
 		tList := make([]Service, 0, len(tmap))
@@ -39,17 +35,6 @@ func (sm *ServicesManager) getServices() ServiceList {
 		}
 		services[uid] = tList
 	}
-	return services
-}
-
-// triggerServiceTracking triggers the tracking of services. Is it called when a
-// service is added or removed.
-func (sm *ServicesManager) triggerServiceTracking() {
-	sm.Mutex.Lock()
-	if len(sm.trackers) == 0 {
-		return
-	}
-	services := sm.GetServices()
 	sm.Mutex.Unlock()
 
 	for _, callback := range sm.trackers {
diff --git a/cmix/message/serviceTracker_test.go b/cmix/message/serviceTracker_test.go
index c7b06b46a853bcc23e267830c9e2cda925385b3a..a1a487762c271bde32476a07652cfd4264b311bf 100644
--- a/cmix/message/serviceTracker_test.go
+++ b/cmix/message/serviceTracker_test.go
@@ -13,7 +13,7 @@ import (
 
 func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) {
 	var sl ServiceList = make(map[id.ID][]Service)
-	numServices := 10
+	numServices := 3
 	testString := "test"
 	for i := 0; i < numServices; i++ {
 		uid := id.NewIdFromUInt(uint64(i), id.User, t)
@@ -24,6 +24,8 @@ func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) {
 		t.Errorf(err.Error())
 	}
 
+	t.Logf("%s", jsonResult)
+
 	sl = make(map[id.ID][]Service)
 	err = sl.UnmarshalJSON(jsonResult)
 	if err != nil {