diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java b/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java
index 2b0ef98..8204a10 100644
--- a/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java
+++ b/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java
@@ -89,14 +89,17 @@
     /**
      * Creates the binary string representation of an IP prefix.
      * The prefix can be either IPv4 or IPv6.
-     * The string length is equal to the prefix length.
+     * The string length is equal to the prefix length + 1.
+     *
+     * For each string, we put a extra "0" in the front. The purpose of
+     * doing this is to store the default route inside InvertedRadixTree.
      *
      * @param ipPrefix the IP prefix to use
      * @return the binary string representation
      */
     public static String createBinaryString(IpPrefix ipPrefix) {
         if (ipPrefix.prefixLength() == 0) {
-            return "";
+            return "0";
         }
 
         byte[] octets = ipPrefix.address().toOctets();
@@ -109,7 +112,8 @@
             boolean isSet = ((value & mask) != 0);
             result.append(isSet ? "1" : "0");
         }
-        return result.toString();
+
+        return "0" + result.toString();
     }
 
     @Override
diff --git a/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java b/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java
index b89eb2d..981d6a0 100644
--- a/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java
+++ b/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java
@@ -121,52 +121,52 @@
         Ip4Prefix prefix;
 
         prefix = Ip4Prefix.valueOf("0.0.0.0/0");
-        assertThat(RouteEntry.createBinaryString(prefix), is(""));
+        assertThat(RouteEntry.createBinaryString(prefix), is("0"));
 
         prefix = Ip4Prefix.valueOf("192.168.166.0/22");
         assertThat(RouteEntry.createBinaryString(prefix),
-                   is("1100000010101000101001"));
+                   is("0" + "1100000010101000101001"));
 
         prefix = Ip4Prefix.valueOf("192.168.166.0/23");
         assertThat(RouteEntry.createBinaryString(prefix),
-                   is("11000000101010001010011"));
+                   is("0" + "11000000101010001010011"));
 
         prefix = Ip4Prefix.valueOf("192.168.166.0/24");
         assertThat(RouteEntry.createBinaryString(prefix),
-                   is("110000001010100010100110"));
+                   is("0" + "110000001010100010100110"));
 
         prefix = Ip4Prefix.valueOf("130.162.10.1/25");
         assertThat(RouteEntry.createBinaryString(prefix),
-                   is("1000001010100010000010100"));
+                   is("0" + "1000001010100010000010100"));
 
         prefix = Ip4Prefix.valueOf("255.255.255.255/32");
         assertThat(RouteEntry.createBinaryString(prefix),
-                   is("11111111111111111111111111111111"));
+                   is("0" + "11111111111111111111111111111111"));
 
         Ip6Prefix prefix6;
         Pattern pattern;
         Matcher matcher;
 
         prefix6 = Ip6Prefix.valueOf("::/0");
-        assertThat(RouteEntry.createBinaryString(prefix6), is(""));
+        assertThat(RouteEntry.createBinaryString(prefix6), is("0"));
 
         prefix6 = Ip6Prefix.valueOf("2000::1000/112");
-        pattern = Pattern.compile("00100{108}");
+        pattern = Pattern.compile("0" + "00100{108}");
         matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6));
         assertTrue(matcher.matches());
 
         prefix6 = Ip6Prefix.valueOf("2000::1000/116");
-        pattern = Pattern.compile("00100{108}0001");
+        pattern = Pattern.compile("0" + "00100{108}0001");
         matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6));
         assertTrue(matcher.matches());
 
         prefix6 = Ip6Prefix.valueOf("2000::2000/116");
-        pattern = Pattern.compile("00100{108}0010");
+        pattern = Pattern.compile("0" + "00100{108}0010");
         matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6));
         assertTrue(matcher.matches());
 
         prefix6 = Ip6Prefix.valueOf("2000::1234/128");
-        pattern = Pattern.compile("00100{108}0001001000110100");
+        pattern = Pattern.compile("0" + "00100{108}0001001000110100");
         matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6));
         assertTrue(matcher.matches());
     }
