diff --git a/utils/misc/src/main/java/org/onlab/packet/IPAddress.java b/utils/misc/src/main/java/org/onlab/packet/IPAddress.java
index 4e898f4..5f4e174 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IPAddress.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IPAddress.java
@@ -103,32 +103,27 @@
             if (builder.length() > 0) {
                 builder.append(".");
             }
-            builder.append(String.format("%02d", b));
+            builder.append(String.format("%d", b));
         }
         return builder.toString();
     }
 
     @Override
     public int hashCode() {
-        return octets.hashCode();
+        return Arrays.hashCode(octets);
     }
 
     @Override
     public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof IPAddress) {
 
+        if (obj instanceof IPAddress) {
             IPAddress other = (IPAddress) obj;
 
-            if (!(this.version.equals(other.version))) {
-                return false;
-            }
-            if (!(Arrays.equals(this.octets, other.octets))) {
-                return false;
+            if (this.version.equals(other.version)
+                    && (Arrays.equals(this.octets, other.octets))) {
+                return true;
             }
         }
-        return true;
+        return false;
     }
 }
diff --git a/utils/misc/src/main/java/org/onlab/packet/VLANID.java b/utils/misc/src/main/java/org/onlab/packet/VLANID.java
index 5b26d04..c978e52 100644
--- a/utils/misc/src/main/java/org/onlab/packet/VLANID.java
+++ b/utils/misc/src/main/java/org/onlab/packet/VLANID.java
@@ -6,20 +6,29 @@
 public class VLANID {
 
     private final short value;
-    private static final short NONE = 0;
+    // Based on convention used elsewhere? Check and change if needed
+    private static final short UNTAGGED = (short) 0xffff;
     // A VLAN ID is actually 12 bits of a VLAN tag.
     private static final short MAX_VLAN = 4095;
 
+    protected VLANID() {
+        this.value = UNTAGGED;
+    }
+
     protected VLANID(short value) {
         this.value = value;
     }
 
     public static VLANID vlanId() {
-        return new VLANID(NONE);
+        return new VLANID(UNTAGGED);
     }
 
     public static VLANID vlanId(short value) {
-        if (value >= MAX_VLAN) {
+        if (value == UNTAGGED) {
+            return new VLANID();
+        }
+
+        if (value > MAX_VLAN) {
             throw new IllegalArgumentException(
                     "value exceeds allowed maximum VLAN ID value (4095)");
         }
