diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c
index ab9e973776d011f7df87158f4cfc35fe969f9427..79d91e7a3aa0b2c676cb7f11df44952c9365e587 100644
--- a/src/target/arm7_9_common.c
+++ b/src/target/arm7_9_common.c
@@ -913,8 +913,9 @@ int arm7_9_poll(target_t *target)
 /*		LOG_DEBUG("DBGACK set, dbg_state->value: 0x%x", buf_get_u32(dbg_stat->value, 0, 32));*/
 		if (target->state == TARGET_UNKNOWN)
 		{
+			/* Starting OpenOCD with target in debug-halt */
 			target->state = TARGET_RUNNING;
-			LOG_WARNING("DBGACK set while target was in unknown state. Reset or initialize target.");
+			LOG_DEBUG("DBGACK already set during server startup.");
 		}
 		if ((target->state == TARGET_RUNNING) || (target->state == TARGET_RESET))
 		{
diff --git a/src/target/arm926ejs.c b/src/target/arm926ejs.c
index 589dfdea4190057a6d216ce091af7cd14754fe45..d9c677ffa88e7bb6c06d98bbcb12771e5152454b 100644
--- a/src/target/arm926ejs.c
+++ b/src/target/arm926ejs.c
@@ -262,10 +262,12 @@ int arm926ejs_examine_debug_reason(target_t *target)
 	if ((retval = jtag_execute_queue()) != ERROR_OK)
 		return retval;
 
+	/* Method-Of-Entry (MOE) field */
 	debug_reason = buf_get_u32(dbg_stat->value, 6, 4);
 
 	switch (debug_reason)
 	{
+		/* case 0:  no debug entry */
 		case 1:
 			LOG_DEBUG("breakpoint from EICE unit 0");
 			target->debug_reason = DBG_REASON_BREAKPOINT;
@@ -307,7 +309,21 @@ int arm926ejs_examine_debug_reason(target_t *target)
 			target->debug_reason = DBG_REASON_DBGRQ;
 			break;
 		case 11:
-			LOG_ERROR("BUG: debug re-entry from system speed access shouldn't be handled here");
+			LOG_DEBUG("debug re-entry from system speed access");
+			/* This is normal when connecting to something that's
+			 * already halted, or in some related code paths, but
+			 * otherwise is surprising (and presumably wrong).
+			 */
+			switch (target->debug_reason) {
+			case DBG_REASON_DBGRQ:
+				break;
+			default:
+				LOG_ERROR("unexpected -- debug re-entry");
+				/* FALLTHROUGH */
+			case DBG_REASON_UNDEFINED:
+				target->debug_reason = DBG_REASON_DBGRQ;
+				break;
+			}
 			break;
 		case 12:
 			/* FIX!!!! here be dragons!!! We need to fail here so