diff --git a/core/api/src/main/java/org/onosproject/core/Version.java b/core/api/src/main/java/org/onosproject/core/Version.java
index 30424b3..7a26357 100644
--- a/core/api/src/main/java/org/onosproject/core/Version.java
+++ b/core/api/src/main/java/org/onosproject/core/Version.java
@@ -26,8 +26,9 @@
  */
 public final class Version {
 
-    public static final String FORMAT = "%d.%d.%s.%s";
+    public static final String FORMAT_MINIMAL = "%d.%d";
     public static final String FORMAT_SHORT = "%d.%d.%s";
+    public static final String FORMAT_LONG = "%d.%d.%s.%s";
 
     private static final String NEGATIVE = "Version segment cannot be negative";
 
@@ -44,9 +45,12 @@
         this.minor = minor;
         this.patch = patch;
         this.build = build;
-        this.format = isNullOrEmpty(build) ?
-                String.format(FORMAT_SHORT, major, minor, patch) :
-                String.format(FORMAT, major, minor, patch, build);
+        this.format =
+                isNullOrEmpty(patch) ?
+                        String.format(FORMAT_MINIMAL, major, minor) :
+                        (isNullOrEmpty(build) ?
+                                String.format(FORMAT_SHORT, major, minor, patch) :
+                                String.format(FORMAT_LONG, major, minor, patch, build));
     }
 
 
@@ -74,7 +78,8 @@
     public static Version version(String string) {
         String[] fields = string.split("[.-]");
         return new Version(parseInt(fields[0]), parseInt(fields[1]),
-                           fields[2], fields.length == 4 ? fields[3] : null);
+                           fields.length >= 3 ? fields[2] : null,
+                           fields.length >= 4 ? fields[3] : null);
     }
 
     /**
