diff --git a/LUFA/Drivers/USB/LowLevel/Host.c b/LUFA/Drivers/USB/LowLevel/Host.c
index 9186f1c7995003bcd658dad237a2643987b601a6..1e22ffcb7f6c2b12d411970c49bc20660e130865 100644
--- a/LUFA/Drivers/USB/LowLevel/Host.c
+++ b/LUFA/Drivers/USB/LowLevel/Host.c
@@ -67,9 +67,13 @@ void USB_Host_ProcessNextHostState(void)
 			break;
 		case HOST_STATE_Powered_WaitForDeviceSettle:
 			#if HOST_DEVICE_SETTLE_DELAY_MS > 0
-			_delay_ms(1);
-
 			if (!(WaitMSRemaining--))
+			{
+				_delay_ms(1);
+				break;
+			}
+			else
+			#endif
 			{
 				USB_Host_VBUS_Manual_Off();
 
@@ -79,9 +83,6 @@ void USB_Host_ProcessNextHostState(void)
 				
 				USB_HostState = HOST_STATE_Powered_WaitForConnect;
 			}
-			#else
-			USB_HostState = HOST_STATE_Powered_WaitForConnect;			
-			#endif
 			
 			break;
 		case HOST_STATE_Powered_WaitForConnect:		
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 5cb7862969fc3fa43120a3aaebc7f0579b5946cc..5dc83cc65b1cc671f0e4b08e9aa3856e1435853f 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -27,6 +27,7 @@
   *  - Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions
   *  - Fixed broken USB_GetNextDescriptor() function causing the descriptor to jump ahead double the expected amount
   *  - Fixed Pipe_IsEndpointBound() not masking the given Endpoint Address against PIPE_EPNUM_MASK
+  *  - Fixed host state machine not enabling Auto VBUS mode when HOST_DEVICE_SETTLE_DELAY_MS is set to zero
   *
   *  \section Sec_ChangeLog091122 Version 091122
   *