diff --git a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
index b6a9591..0151212 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
@@ -52,6 +52,9 @@
 	private final ILayer3InfoService layer3;
 	private final IRestApiService restApi;
 	
+	private short vlan;
+	private static final short NO_VLAN = 0;
+	
 	private final ArpCache arpCache;
 
 	private final SetMultimap<InetAddress, ArpRequest> arpRequests;
@@ -117,7 +120,10 @@
 				HashMultimap.<InetAddress, ArpRequest>create());
 	}
 	
-	public void startUp() {
+	public void startUp(short vlan) {
+		this.vlan = vlan;
+		log.info("vlan set to {}", this.vlan);
+		
 		restApi.addRestletRoutable(new ArpWebRoutable());
 		
 		Timer arpTimer = new Timer("arp-processing");
@@ -361,6 +367,11 @@
 			.setEtherType(Ethernet.TYPE_ARP)
 			.setPayload(arpRequest);
 		
+		if (vlan != NO_VLAN) {
+			eth.setVlanID(vlan)
+			   .setPriorityCode((byte)0);
+		}
+		
 		sendArpRequestToSwitches(ipAddress, eth.serialize());
 	}
 	
@@ -492,12 +503,19 @@
 			.setTargetHardwareAddress(arpRequest.getSenderHardwareAddress())
 			.setTargetProtocolAddress(arpRequest.getSenderProtocolAddress());
 		
+
+		
 		Ethernet eth = new Ethernet();
 		eth.setDestinationMACAddress(arpRequest.getSenderHardwareAddress())
 			.setSourceMACAddress(targetMac.toBytes())
 			.setEtherType(Ethernet.TYPE_ARP)
 			.setPayload(arpReply);
 		
+		if (vlan != NO_VLAN) {
+			eth.setVlanID(vlan)
+			   .setPriorityCode((byte)0);
+		}
+		
 		List<OFAction> actions = new ArrayList<OFAction>();
 		actions.add(new OFActionOutput(port));
 		
