diff --git a/indra/llmessage/llsdmessagereader.cpp b/indra/llmessage/llsdmessagereader.cpp
index c47d4b78bca8815d24b1081000b5036251cc9b3f..e699ec9e28b467c7ed93e719684b78f96a3ccc89 100755
--- a/indra/llmessage/llsdmessagereader.cpp
+++ b/indra/llmessage/llsdmessagereader.cpp
@@ -108,6 +108,12 @@ void LLSDMessageReader::getBinaryData(const char *block, const char *var,
 		data_size = max_size;
 	}
 	
+	// Calls to memcpy will fail if data_size is not positive.
+	// Phoenix 2009-02-27
+	if(data_size <= 0)
+	{
+		return;
+	}
 	memcpy(datap, &(data[0]), data_size);
 }