diff --git a/Projects/Webserver/Lib/uIPManagement.c b/Projects/Webserver/Lib/uIPManagement.c
index 44da609dd176f6ac1f64c6b292e434556e036187..2e8fa4f31a4bc6e970ed848bd0101d461c99df37 100644
--- a/Projects/Webserver/Lib/uIPManagement.c
+++ b/Projects/Webserver/Lib/uIPManagement.c
@@ -92,47 +92,50 @@ void uIPManagement_ManageNetwork(void)
 /** Processes incomming packets to the server from the connected RNDIS device, creating responses as needed. */
 static void uIPManagement_ProcessIncommingPacket(void)
 {
-	if (RNDIS_Host_IsPacketReceived(&Ethernet_RNDIS_Interface))
-	{
-		LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
+	/* If no packet received, exit processing routine */
+	if (!(RNDIS_Host_IsPacketReceived(&Ethernet_RNDIS_Interface)))
+	  return;
+	  
+	LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
 
-		/* Read the incomming packet straight into the UIP packet buffer */
-		RNDIS_Host_ReadPacket(&Ethernet_RNDIS_Interface, uip_buf, &uip_len);
+	/* Read the incomming packet straight into the UIP packet buffer */
+	RNDIS_Host_ReadPacket(&Ethernet_RNDIS_Interface, uip_buf, &uip_len);
 
-		if (uip_len > 0)
+	/* If the packet contains an Ethernet frame, process it */
+	if (uip_len > 0)
+	{
+		switch (((struct uip_eth_hdr*)uip_buf)->type)
 		{
-			bool PacketHandled = true;
-
-			struct uip_eth_hdr* EthernetHeader = (struct uip_eth_hdr*)uip_buf;
-			if (EthernetHeader->type == HTONS(UIP_ETHTYPE_IP))
-			{
+			case HTONS(UIP_ETHTYPE_IP):
 				/* Filter packet by MAC destination */
 				uip_arp_ipin();
 
 				/* Process incomming packet */
 				uip_input();
 
-				/* Add destination MAC to outgoing packet */
+				/* If a response was generated, send it */
 				if (uip_len > 0)
-				  uip_arp_out();
-			}
-			else if (EthernetHeader->type == HTONS(UIP_ETHTYPE_ARP))
-			{
+				{
+					/* Add destination MAC to outgoing packet */
+					uip_arp_out();
+
+					RNDIS_Host_SendPacket(&Ethernet_RNDIS_Interface, uip_buf, uip_len);
+				}
+				
+				break;
+			case HTONS(UIP_ETHTYPE_ARP):
 				/* Process ARP packet */
 				uip_arp_arpin();
-			}
-			else
-			{
-				PacketHandled = false;
-			}
-
-			/* If a response was generated, send it */
-			if ((uip_len > 0) && PacketHandled)
-			  RNDIS_Host_SendPacket(&Ethernet_RNDIS_Interface, uip_buf, uip_len);
+				
+				/* If a response was generated, send it */
+				if (uip_len > 0)
+				  RNDIS_Host_SendPacket(&Ethernet_RNDIS_Interface, uip_buf, uip_len);
+				
+				break;
 		}
-
-		LEDs_SetAllLEDs(LEDMASK_USB_READY);
 	}
+
+	LEDs_SetAllLEDs(LEDMASK_USB_READY);
 }
 
 /** Manages the currently open network connections, including TCP and (if enabled) UDP. */