diff --git a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMessageEncoder.java b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMessageEncoder.java
index 3e37fd6..01bd81d 100644
--- a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMessageEncoder.java
+++ b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMessageEncoder.java
@@ -46,7 +46,7 @@
             if (message != null) {
                 ByteBuf byteBuf = Unpooled.buffer();
                 message.writeTo(byteBuf);
-                out.add(new DatagramPacket(byteBuf, ((LispMessage) msg).getSender()));
+                out.add(new DatagramPacket(byteBuf, message.getSender()));
             }
         }
     }
diff --git a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageEncoderTest.java b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageEncoderTest.java
index a7fd2de..375ef25 100644
--- a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageEncoderTest.java
+++ b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageEncoderTest.java
@@ -66,7 +66,7 @@
         assertThat(returned, is(expected));
     }
 
-    //@Test
+    @Test
     public void testEncode() throws Exception {
         LispMessageEncoder encoder = new LispMessageEncoder();
         MockLispMessage request = new MockLispMessage(LispType.LISP_MAP_REQUEST);
@@ -75,8 +75,15 @@
         MockLispMessage notify = new MockLispMessage(LispType.LISP_MAP_NOTIFY);
 
         ByteBuf buff = Unpooled.buffer();
+        List<DatagramPacket> list = Lists.newArrayList();
         List<MockLispMessage> messages = ImmutableList.of(request, reply, register, notify);
-        encoder.encode(null, messages, Lists.newArrayList());
+        encoder.encode(null, messages, list);
+
+        list.forEach(p -> {
+            byte[] tmp = new byte[p.content().writerIndex()];
+            p.content().readBytes(tmp);
+            buff.writeBytes(tmp);
+        });
 
         assertThat(buff, notNullValue());
 
