diff --git a/main/stasis_state.c b/main/stasis_state.c
index 2a9afcb717fc3b320cf0bf1ace9633a7ee25bc52..a9159724d04afc953a9b6fe59be613c06839fae8 100644
--- a/main/stasis_state.c
+++ b/main/stasis_state.c
@@ -514,8 +514,11 @@ void *stasis_state_unsubscribe(struct stasis_state_subscriber *sub)
 
 void *stasis_state_unsubscribe_and_join(struct stasis_state_subscriber *sub)
 {
-	sub->stasis_sub = stasis_unsubscribe_and_join(sub->stasis_sub);
-	ao2_ref(sub, -1);
+	if (sub) {
+		sub->stasis_sub = stasis_unsubscribe_and_join(sub->stasis_sub);
+		ao2_ref(sub, -1);
+	}
+
 	return NULL;
 }