diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java
index 34ec469..110fe3e 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java
@@ -29,9 +29,8 @@
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 import static org.onosproject.lisp.msg.protocols.LispEidRecord.EidRecordWriter;
+import static org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 /**
  * Default LISP map request message class.
@@ -280,7 +279,6 @@
         @Override
         public LispMapRequest build() {
 
-            checkNotNull(sourceEid, "Must have a source EID");
             checkArgument((itrRlocs != null) && (itrRlocs.size() > 0), "Must have an ITR RLOC entry");
 
             return new DefaultLispMapRequest(nonce, sourceEid, itrRlocs, eidRecords,
@@ -344,7 +342,7 @@
 
             // deserialize a collection of RLOC addresses
             List<LispAfiAddress> itrRlocs = Lists.newArrayList();
-            for (int i = 0; i < irc; i++) {
+            for (int i = 0; i < irc + 1; i++) {
                 itrRlocs.add(new LispAfiAddress.AfiAddressReader().readFrom(byteBuf));
             }
 
@@ -433,7 +431,7 @@
             byteBuf.writeByte((byte) (pitr + smrInvoked));
 
             // ITR Rloc count
-            byteBuf.writeByte((byte) message.getItrRlocs().size());
+            byteBuf.writeByte((byte) message.getItrRlocs().size() - 1);
 
             // record count
             byteBuf.writeByte(message.getEids().size());
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java
index 2798cc9..4bb47af 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java
@@ -41,7 +41,7 @@
         LispMessageReader reader;
 
         LispType type = LispType.valueOf(
-                (short) (buffer.getByte(0) >> TYPE_SHIFT_BIT));
+                (short) (buffer.getUnsignedByte(0) >> TYPE_SHIFT_BIT));
 
         switch (type) {
             case LISP_MAP_REQUEST:
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
index aba3475..7f67277 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
@@ -89,6 +89,11 @@
             // AFI code -> 16 bits
             short afiCode = (short) byteBuf.getUnsignedShort(index);
 
+            // handle no address
+            if (afiCode == NO_ADDRESS.getIanaCode()) {
+                byteBuf.readUnsignedShort();
+            }
+
             // handle IPv4 and IPv6 address
             if (afiCode == IP4.getIanaCode() ||
                 afiCode == IP6.getIanaCode()) {
