diff --git a/apid.go b/apid.go
index ea4eb8d..596cfe8 100644
--- a/apid.go
+++ b/apid.go
@@ -71,8 +71,8 @@
 		}
 		pie.Plugins = append(pie.Plugins, pluginData)
 	}
-	Events().Emit(SystemEventsSelector, pie)
 	pluginInitFuncs = nil
+	Events().Emit(SystemEventsSelector, pie)
 	log.Debugf("done initializing plugins")
 }
 
diff --git a/events/events_test.go b/events/events_test.go
index 857d7fc..5f8d181 100644
--- a/events/events_test.go
+++ b/events/events_test.go
@@ -290,19 +290,19 @@
 
 				if pie, ok := event.(apid.ShutdownEvent); ok {
 					Expect(pie.Description).Should(Equal("apid is going to shutdown"))
-					close(done)
 				} else {
 					Fail("Received wrong event")
 				}
 			}
 			apid.Events().ListenFunc(apid.ShutdownEventSelector, h)
-			shutdownHandler := func(event apid.Event) {}
-			apid.Events().EmitWithCallback(apid.ShutdownEventSelector, apid.ShutdownEvent{"apid is going to shutdown"}, shutdownHandler)
+			<- apid.Events().Emit(apid.ShutdownEventSelector, apid.ShutdownEvent{"apid is going to shutdown"})
+			close(done)
 		})
 
 		It("handlers registered by plugins should execute before apid shutdown", func(done Done) {
 			pluginNum := 10
 			count := int32(0)
+			countP := &count
 
 			// create and register plugins, listen to shutdown event
 			for i:=0; i<pluginNum; i++ {
@@ -310,7 +310,7 @@
 				h := func(event apid.Event) {
 					if pie, ok := event.(apid.ShutdownEvent); ok {
 						Expect(pie.Description).Should(Equal("apid is going to shutdown"))
-						atomic.AddInt32(&count, 1)
+						atomic.AddInt32(countP, 1)
 					} else {
 						Fail("Received wrong event")
 					}
