diff --git a/src/seq/seq_task.c b/src/seq/seq_task.c
index a36f826747fb92c422c6c87fc4a1fbf3b53ac420..0fdf379e684ef341ce0869c8c6d6651012cb5d34 100644
--- a/src/seq/seq_task.c
+++ b/src/seq/seq_task.c
@@ -65,6 +65,15 @@ void sequencer (void *arg)	/* ptr to original (global) state program table */
 	if (seq_connect(sp, ((sp->options & OPT_CONN) != 0)) != pvStatOK)
 		goto exit;
 
+	/* Emulate the 'first monitor event' for anonymous PVs */
+	if ((sp->options & OPT_SAFE) != 0)
+	{
+		unsigned nch;
+		for (nch=0; nch<sp->numChans; nch++)
+			if (sp->chan[nch].syncedTo && !sp->chan[nch].dbch)
+				seq_efSet(sp->ss, sp->chan[nch].syncedTo);
+	}
+
 	/* Call program entry function if defined.
 	   Treat as if called from 1st state set. */
 	if (sp->entryFunc) sp->entryFunc(sp->ss, sp->ss->var);