diff --git a/src/sbbs3/postmsg.cpp b/src/sbbs3/postmsg.cpp
index 71dd64a81880a6b6ef673ec086a774e7b34ada3f..919d88e1a2c8851317cea30e749b275b03375b87 100644
--- a/src/sbbs3/postmsg.cpp
+++ b/src/sbbs3/postmsg.cpp
@@ -565,17 +565,32 @@ extern "C" int DLLCALL votemsg(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, const cha
 			(stricmp(remsg.from, user.alias) == 0 || stricmp(remsg.from, user.name) == 0)) {
 			char from[256];
 			char tstr[128];
-			char smsg[256];
+			char smsg[4000];
+			char votes[3000] = "";
 			if(msg->from_net.type)
 				safe_snprintf(from, sizeof(from), "%s (%s)", msg->from, smb_netaddr(&msg->from_net));
 			else
 				SAFECOPY(from, msg->from);
+			if(remsg.hdr.type == SMB_MSG_TYPE_POLL) {
+				int answers = 0;
+				for(int i=0; i<remsg.total_hfields; i++) {
+					if(remsg.hfield[i].type == SMB_POLL_ANSWER) {
+						if(msg->hdr.votes&(1<<answers)) {
+							char vote[128];
+							SAFEPRINTF(vote, " %.78s\r\n", (char*)remsg.hfield_dat[i]);
+							SAFECAT(votes, vote);
+						}
+						answers++;
+					}
+				}
+			}
 			safe_snprintf(smsg, sizeof(smsg), smsgfmt
 				,timestr(cfg, msg->hdr.when_written.time, tstr)
 				,cfg->grp[cfg->sub[smb->subnum]->grp]->sname
 				,cfg->sub[smb->subnum]->sname
 				,from
-				,remsg.subj);
+				,remsg.subj
+				,votes);
 			putsmsg(cfg, user.number, smsg);
 		}
 	}