diff --git a/pom.xml b/pom.xml
index 83fad6b..0725340 100644
--- a/pom.xml
+++ b/pom.xml
@@ -702,7 +702,7 @@
     <dependency>
       <groupId>org.projectfloodlight</groupId>
       <artifactId>openflowj</artifactId>
-      <version>0.3.4-SNAPSHOT</version>
+      <version>0.3.8-SNAPSHOT</version>
     </dependency>
     <!-- Floodlight's dependencies -->
     <dependency>
diff --git a/src/main/java/net/onrc/onos/core/intent/Match.java b/src/main/java/net/onrc/onos/core/intent/Match.java
index a3c397b..14d8b92 100644
--- a/src/main/java/net/onrc/onos/core/intent/Match.java
+++ b/src/main/java/net/onrc/onos/core/intent/Match.java
@@ -13,7 +13,7 @@
 import org.projectfloodlight.openflow.protocol.match.Match.Builder;
 import org.projectfloodlight.openflow.protocol.match.MatchField;
 import org.projectfloodlight.openflow.types.EthType;
-import org.projectfloodlight.openflow.types.IPv4AddressWithMask;
+import org.projectfloodlight.openflow.types.IPv4Address;
 import org.projectfloodlight.openflow.types.MacAddress;
 import org.projectfloodlight.openflow.types.OFPort;
 
@@ -150,13 +150,13 @@
         }
         if (srcIp != ShortestPathIntent.EMPTYIPADDRESS) {
             matchBuilder.setExact(MatchField.ETH_TYPE, EthType.IPv4)
-                    .setMasked(MatchField.IPV4_SRC,
-                            IPv4AddressWithMask.of(srcIp, IPV4_PREFIX_LEN));
+            .setMasked(MatchField.IPV4_SRC,
+                    IPv4Address.of(srcIp).withMaskOfLength(IPV4_PREFIX_LEN));
         }
         if (dstIp != ShortestPathIntent.EMPTYIPADDRESS) {
             matchBuilder.setExact(MatchField.ETH_TYPE, EthType.IPv4)
-                    .setMasked(MatchField.IPV4_DST,
-                            IPv4AddressWithMask.of(dstIp, IPV4_PREFIX_LEN));
+            .setMasked(MatchField.IPV4_DST,
+                    IPv4Address.of(dstIp).withMaskOfLength(IPV4_PREFIX_LEN));
         }
         matchBuilder.setExact(MatchField.IN_PORT, OFPort.of((int) srcPort));
 
