diff --git a/core/core_server.go b/core/core_server.go
index af699e1..c03545a 100644
--- a/core/core_server.go
+++ b/core/core_server.go
@@ -646,14 +646,25 @@
 				"payload": layerDHCP.LayerPayload(),
 				"type":    layerDHCP.LayerType().String(),
 			}).Info("Received downstream packet is DHCP.")
-			rawpkt, _, _ = PopVLAN(rawpkt)
-			rawpkt, _, _ = PopVLAN(rawpkt)
-			logger.Debug("%s", rawpkt.Dump())
-			dhcpPkt := byteMsg{IntfId: intfid, OnuId: onuid, Byte: rawpkt.Data()}
+			poppkt, _, err := PopVLAN(rawpkt)
+			if err != nil {
+				logger.Error("Received untagged packet when expecting single-tagged packet. Dropped.")
+				return nil
+			} else {
+				// check to see if the packet was double-tagged
+				_, _, err := PopVLAN(poppkt)
+				if err == nil {
+					logger.Error("Received double-tagged packet when expecting single-tagged packet. Dropped.")
+					return nil
+				}
+			}
+			logger.Debug("%s", poppkt.Dump())
+			dhcpPkt := byteMsg{IntfId: intfid, OnuId: onuid, Byte: poppkt.Data()}
 			s.dhcpOut <- &dhcpPkt
 			return nil
 		} else {
 			device.LoggerWithOnu(onu).Warn("WARNING: Received packet is not EAPOL or DHCP")
+			// TODO(smbaker): Clarify if this return is correct. There is SendUni() dead code that follows.
 			return nil
 		}
 		ioinfo, err := s.identifyUniIoinfo("inside", intfid, onuid)
@@ -670,10 +681,18 @@
 
 func (s *Server) uplinkPacketOut(rawpkt gopacket.Packet) error {
 	poppkt, _, err := PopVLAN(rawpkt)
-	poppkt, _, err = PopVLAN(poppkt)
 	if err != nil {
-		logger.Error("%s", err)
-		return err
+		logger.Error("Received untagged packet when expecting single-tagged packet. Dropped")
+		return nil
+	} else {
+		// check to see if the packet was double-tagged
+		poppktAgain, _, err := PopVLAN(poppkt)
+		if err == nil {
+			poppkt = poppktAgain
+		} else {
+			logger.Error("Received single-tagged packet when expecting double-tagged packet. Dropped.")
+			return nil
+		}
 	}
 	ioinfo, err := s.IdentifyNniIoinfo("inside")
 	if err != nil {
diff --git a/core/io_worker.go b/core/io_worker.go
index 00ecda3..e0ffd10 100644
--- a/core/io_worker.go
+++ b/core/io_worker.go
@@ -85,8 +85,7 @@
 			return retpkt, vid, nil
 		}
 	}
-	return pkt, 0, nil
-	// return nil, 0, errors.New("failed to pop vlan")
+	return nil, 0, errors.New("failed to pop vlan")
 }
 
 // PushVLAN pushes the vlan header to the packet and returns tha packet
