diff --git a/include/cmn/msgBuffer.h b/include/cmn/msgBuffer.h
new file mode 100644
index 0000000..fcf799b
--- /dev/null
+++ b/include/cmn/msgBuffer.h
@@ -0,0 +1,88 @@
+/*
+ * MsgBuffer.h
+ *
+ *  Created on: Feb 13, 2011
+ *      Author: hariharanb
+ */
+
+#ifndef MSGBUFFER_H_
+#define MSGBUFFER_H_
+
+#include <sstream>
+#include <debug.h>
+
+#include <stdint.h>
+
+#define DEFAULT_BUFF_SIZE 1024
+
+using namespace std;
+extern cmn::utils::Debug errorStream;
+namespace cmn
+{
+namespace utils
+{
+class MsgBuffer
+{
+public:
+
+	MsgBuffer();
+	MsgBuffer(uint16_t size);
+
+	~MsgBuffer();
+
+
+	bool writeBits(uint8_t data, uint8_t size, bool append = true);
+	bool writeBytes(uint8_t* data, uint16_t size, bool append = true);
+	bool writeUint8(uint8_t data,  bool append = true);
+	bool writeUint16(uint16_t data, bool append = true);
+	bool writeUint32(uint32_t data, bool append = true);
+	bool writeUint64(uint64_t data, bool append = true);
+
+	void display (Debug &stream);
+
+	uint8_t readBits(uint16_t size);
+	bool readBytes(uint8_t* data, uint16_t size);
+
+	bool readBit();
+	void readUint8(uint8_t &data);
+	bool readUint16(uint16_t &data);
+	bool readUint32(uint32_t &data);
+	bool readUint64(uint64_t &data);
+	void reset();
+	void rewind();
+	void goToEnd();
+	void skipBits(uint8_t size);
+	void skipBytes(uint16_t size);
+    	uint16_t getLength();
+	uint16_t getBufferSize();
+    	uint16_t getCurrentIndex();
+    	void goToIndex(uint16_t idx);
+
+    	uint8_t charToHex(uint8_t x);
+    	uint16_t lengthLeft();
+    	uint16_t sizeLeft();
+
+    	void* getDataPointer();
+    	void setLength(uint16_t bufLen);
+
+private:
+
+	uint8_t* data_mp;
+	uint16_t bufSize;
+	uint16_t length;
+	uint16_t bitLength;
+	uint16_t byteIndex;
+	uint16_t bitIndex;
+
+	void initialize(uint16_t size);
+	bool incrBitIndex(uint8_t size);
+	bool incrByteIndex(uint16_t size);
+	void nextByte();
+};
+};
+};
+
+using namespace cmn::utils;
+
+#endif /* MSGBUFFER_H_ */
+
