diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java b/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java
index 3005c60..49ffd4e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java
@@ -117,7 +117,7 @@
 		@Adjacency(label="host")
 		public void removeDevice(final IDeviceObject device);
 		
-		/*
+		
 		@JsonIgnore
 		@Adjacency(label="inport",direction = Direction.IN)
 		public Iterable<IFlowEntry> getInFlowEntries();
@@ -125,7 +125,7 @@
 		@JsonIgnore
 		@Adjacency(label="outport",direction = Direction.IN)
 		public Iterable<IFlowEntry> getOutFlowEntries();
-		*/
+		
 		
 		@JsonIgnore
 		@Adjacency(label="link")
@@ -540,7 +540,6 @@
 		@Adjacency(label="switch")
 		public void setSwitch(ISwitchObject sw);
 
-		/*
 		@Adjacency(label="inport")
 		public IPortObject getInPort();
 
@@ -552,6 +551,5 @@
 
 		@Adjacency(label="outport")
 		public void setOutPort(IPortObject port);
-		*/
 	}
 }
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
index 73db675..1babafa 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
@@ -248,11 +248,11 @@
 	flowEntryObj.setSwitchDpid(flowEntry.dpid().toString());
 	flowEntryObj.setSwitch(sw);
 	if (flowEntry.flowEntryMatch().matchInPort()) {
-	    //IPortObject inport =
-		//dbHandler.searchPort(flowEntry.dpid().toString(),
-					//flowEntry.flowEntryMatch().inPort().value());
+	    IPortObject inport =
+		dbHandler.searchPort(flowEntry.dpid().toString(),
+					flowEntry.flowEntryMatch().inPort().value());
 	    flowEntryObj.setMatchInPort(flowEntry.flowEntryMatch().inPort().value());
-	    //flowEntryObj.setInPort(inport);
+	    flowEntryObj.setInPort(inport);
 	}
 	if (flowEntry.flowEntryMatch().matchSrcMac()) {
 	    flowEntryObj.setMatchSrcMac(flowEntry.flowEntryMatch().srcMac().toString());
@@ -290,11 +290,11 @@
 
 	for (FlowEntryAction fa : flowEntry.flowEntryActions().actions()) {
 	    if (fa.actionOutput() != null) {
-		//IPortObject outport =
-		    //dbHandler.searchPort(flowEntry.dpid().toString(),
-					      //fa.actionOutput().port().value());
+		IPortObject outport =
+		    dbHandler.searchPort(flowEntry.dpid().toString(),
+					      fa.actionOutput().port().value());
 		flowEntryObj.setActionOutputPort(fa.actionOutput().port().value());
-		//flowEntryObj.setOutPort(outport);
+		flowEntryObj.setOutPort(outport);
 	    }
 	}
 	if (! flowEntry.flowEntryActions().isEmpty()) {
