diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java
index 9c5e970..d05d90e 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java
@@ -47,11 +47,23 @@
      * Compare fromVersion and toVersion.
      * @param fromVersion the initial version
      * @param toVersion the end of the version
-     * @return a long number
+     * @return an int number
      */
-    public static long versionCompare(String fromVersion, String toVersion) {
-        Long fromNum = Long.parseLong(fromVersion.replace(".", ""));
-        Long toNum = Long.parseLong(toVersion.replace(".", ""));
-        return (fromNum - toNum);
+    public static int versionCompare(String fromVersion, String toVersion) {
+        String[] fromArr = fromVersion.split("\\.");
+        String[] toArr = toVersion.split("\\.");
+        int fromFirst = Integer.parseInt(fromArr[0]);
+        int fromMiddle = Integer.parseInt(fromArr[1]);
+        int fromEnd = Integer.parseInt(fromArr[2]);
+        int toFirst = Integer.parseInt(toArr[0]);
+        int toMiddle = Integer.parseInt(toArr[1]);
+        int toEnd = Integer.parseInt(toArr[2]);
+        if (fromFirst - toFirst != 0) {
+            return fromFirst - toFirst;
+        } else if (fromMiddle - toMiddle != 0) {
+            return fromMiddle - toMiddle;
+        } else {
+            return fromEnd - toEnd;
+        }
     }
 }
