temporaily fix zero-length payload with payload marker (#1300)

diff --git a/src/core/thread/network_diagnostic.cpp b/src/core/thread/network_diagnostic.cpp
index c6c3a9c..67bf920 100644
--- a/src/core/thread/network_diagnostic.cpp
+++ b/src/core/thread/network_diagnostic.cpp
@@ -511,16 +511,18 @@
     VerifyOrExit((message = mNetif.GetCoapServer().NewMessage(0)) != NULL, error = kThreadError_NoBufs);
 
     header.SetDefaultResponseHeader(aHeader);
-
-    if (networkDiagnosticTlv.GetLength() > 0)
-    {
-        header.SetPayloadMarker();
-    }
+    header.SetPayloadMarker();
 
     SuccessOrExit(error = message->Append(header.GetBytes(), header.GetLength()));
 
     SuccessOrExit(error = FillRequestedTlvs(aMessage, *message, networkDiagnosticTlv));
 
+    if (message->GetLength() == header.GetLength())
+    {
+        // Remove Payload Marker if payload is actually empty.
+        message->SetLength(header.GetLength() - 1);
+    }
+
     SuccessOrExit(error = mNetif.GetCoapServer().SendMessage(*message, messageInfo));
 
     otLogInfoNetDiag("Sent diagnostic get response");