diff --git a/doc/manager_1_1.txt b/doc/manager_1_1.txt
index a9b47def5295cfd1abc95e02210d393d06140242..30ba876ca56b85f48c147af38d9bf8c6137c4a7f 100644
--- a/doc/manager_1_1.txt
+++ b/doc/manager_1_1.txt
@@ -314,6 +314,22 @@ Changes to manager version 1.1:
 * NEW EVENTS
 ------------
 
+- Event: FullyBooted
+	Modules: loader.c
+	Purpose:
+		It is handy to have a single event notification for when all Asterisk
+		modules have been loaded--especially for situations like running
+		automated tests. This event will fire 1) immediately upon all modules
+		loading or 2) upon connection to the AMI interface if the modules have
+		already finished loading before the connection was made. This ensures
+		that a user will never miss getting a FullyBooted event. In vary rare
+		circumstances, it might be possible to get two copies of the message
+		if the AMI connection is made right as the modules finish loading.
+	Example:
+		Event: FullyBooted
+		Privilege: system,all
+		Status: Fully Booted
+
 - Event: Transfer
 	Modules: res_features, chan_sip
 	Purpose:
diff --git a/main/asterisk.c b/main/asterisk.c
index fd29a6f64bfeb2cf1bac732b7d80108e2970ca67..a9844de9697dd29c368794b959d718f117275c41 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -3723,6 +3723,7 @@ int main(int argc, char *argv[])
 		sig_alert_pipe[0] = sig_alert_pipe[1] = -1;
 
 	ast_set_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED);
+	manager_event(EVENT_FLAG_SYSTEM, "FullyBooted", "Status: Fully Booted\r\n");
 
 	ast_process_pending_reloads();
 
diff --git a/main/manager.c b/main/manager.c
index 297e94f5f28b6d98aa85430f2ae33192c50e3245..f23cec8a2351493a58f388aa6aa27255e14e83c6 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -2740,6 +2740,9 @@ static int action_login(struct mansession *s, const struct message *m)
 		ast_verb(2, "%sManager '%s' logged on from %s\n", (s->session->managerid ? "HTTP " : ""), s->session->username, ast_inet_ntoa(s->session->sin.sin_addr));
 	}
 	astman_send_ack(s, m, "Authentication accepted");
+	if (ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) {
+		manager_event(EVENT_FLAG_SYSTEM, "FullyBooted", "Status: Fully Booted\r\n");
+	}
 	return 0;
 }