Thanks for you help...because I took a look from a far, I can now read the entire body of the message. The way I did this was first of all, I "Read the ____ing Manual". MAPI says that if you have a large message to read, you should do the following (I felt you deserved how I got it to work!: hr = pmsgRoute->OpenProperty(PR_BODY, STGM_READ, (LPUNKNOWN FAR *) &lpstreamBody); if(S_OK != GetScode(hr)) { DebugTraceResult(OpenProperty, hr); goto err; } hr = lpstreamBody->Stat(&statstg, STATFLAG_NONAME); if(S_OK != GetScode(hr)) { DebugTrace("IStream::Stat failed"); goto err; } Assert(statstg.cbSize.HighPart == 0); if(MAPIAllocateBuffer(statstg.cbSize.LowPart + 1, (LPVOID FAR *) &lpszNoteText)) { goto err; } hr = lpstreamBody->Read(lpszNoteText, statstg.cbSize.LowPart, &cb); if(S_OK != GetScode(hr)) { DebugTrace("IStream::Read failed"); goto err; } lpszNoteText[statstg.cbSize.LowPart] = '\0'; SetDlgItemText(hDlg, IDC_RTNOTE, lpszNoteText); MAPIFreeBuffer(lpszNoteText); lpszNoteText = NULL; lpstreamBody->Release(); lpstreamBody = NULL; Thanks in advance, Dan