diff --git a/indra/newview/llpanelsnapshotpostcard.cpp b/indra/newview/llpanelsnapshotpostcard.cpp
index 0db15deec9d06070042d42470fe1722be3838cb1..6867c7af4ef7c6f13b9530249e3fccebbffb4106 100644
--- a/indra/newview/llpanelsnapshotpostcard.cpp
+++ b/indra/newview/llpanelsnapshotpostcard.cpp
@@ -75,6 +75,7 @@ class LLPanelSnapshotPostcard
 	void onSend();
 
 	bool mHasFirstMsgFocus;
+	std::string mAgentEmail;
 };
 
 static LLRegisterPanelClassWrapper<LLPanelSnapshotPostcard> panel_class("llpanelsnapshotpostcard");
@@ -95,8 +96,6 @@ BOOL LLPanelSnapshotPostcard::postBuild()
 	// pick up the user's up-to-date email address
 	gAgent.sendAgentUserInfoRequest();
 
-	getChildView("from_form")->setEnabled(FALSE);
-
 	std::string name_string;
 	LLAgentUI::buildFullname(name_string);
 	getChild<LLUICtrl>("name_form")->setValue(LLSD(name_string));
@@ -128,12 +127,9 @@ S32 LLPanelSnapshotPostcard::notify(const LLSD& info)
 		return 0;
 	}
 
-	LLUICtrl* from_input = getChild<LLUICtrl>("from_form");
-	const std::string& text = from_input->getValue().asString();
-	if (text.empty())
+	if (mAgentEmail.empty())
 	{
-		// there's no text in this field yet, pre-populate
-		from_input->setValue(info["agent-email"]);
+		mAgentEmail = info["agent-email"].asString();
 	}
 
 	return 1;
@@ -176,14 +172,13 @@ bool LLPanelSnapshotPostcard::missingSubjMsgAlertCallback(const LLSD& notificati
 
 void LLPanelSnapshotPostcard::sendPostcard()
 {
-	std::string from(getChild<LLUICtrl>("from_form")->getValue().asString());
 	std::string to(getChild<LLUICtrl>("to_form")->getValue().asString());
 	std::string subject(getChild<LLUICtrl>("subject_form")->getValue().asString());
 
 	LLSD postcard = LLSD::emptyMap();
 	postcard["pos-global"] = LLFloaterSnapshot::getPosTakenGlobal().getValue();
 	postcard["to"] = to;
-	postcard["from"] = from;
+	postcard["from"] = mAgentEmail;
 	postcard["name"] = getChild<LLUICtrl>("name_form")->getValue().asString();
 	postcard["subject"] = subject;
 	postcard["msg"] = getChild<LLUICtrl>("msg_form")->getValue().asString();
@@ -246,7 +241,6 @@ void LLPanelSnapshotPostcard::onTabButtonPress(S32 btn_idx)
 void LLPanelSnapshotPostcard::onSend()
 {
 	// Validate input.
-	std::string from(getChild<LLUICtrl>("from_form")->getValue().asString());
 	std::string to(getChild<LLUICtrl>("to_form")->getValue().asString());
 
 	boost::regex email_format("[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}(,[ \t]*[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,})*");
@@ -257,7 +251,7 @@ void LLPanelSnapshotPostcard::onSend()
 		return;
 	}
 
-	if (from.empty() || !boost::regex_match(from, email_format))
+	if (mAgentEmail.empty() || !boost::regex_match(mAgentEmail, email_format))
 	{
 		LLNotificationsUtil::add("PromptSelfEmail");
 		return;
diff --git a/indra/newview/llpostcard.cpp b/indra/newview/llpostcard.cpp
index 5f57f3a856d609440f9e9a680e9f641c027d31c5..4f2d6da7e593be9494fb66b07e9139358e386b0e 100644
--- a/indra/newview/llpostcard.cpp
+++ b/indra/newview/llpostcard.cpp
@@ -116,13 +116,8 @@ LLPostCard::result_callback_t LLPostCard::mResultCallback;
 // static
 void LLPostCard::send(LLPointer<LLImageFormatted> image, const LLSD& postcard_data)
 {
-#if 0
-	static LLTransactionID transaction_id;
-	static LLAssetID asset_id;
-#else
 	LLTransactionID transaction_id;
 	LLAssetID asset_id;
-#endif
 
 	transaction_id.generate();
 	asset_id = transaction_id.makeAssetID(gAgent.getSecureSessionID());
diff --git a/indra/newview/skins/default/xui/en/panel_postcard_message.xml b/indra/newview/skins/default/xui/en/panel_postcard_message.xml
index c2a3c70b6ec060ace545d771df19deed87b7ef36..e9f322f590f14cf05596c718eb2413cb504fb787 100644
--- a/indra/newview/skins/default/xui/en/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/en/panel_postcard_message.xml
@@ -10,18 +10,20 @@
      bottom="35"
      follows="top|left"
      font="SansSerif"
+     height="16"
      layout="topleft"
      left="12"
      name="to_label"
-     top="10">
-        Recipient&apos;s Email:
+     top="10"
+     width="60">
+        To:
     </text>
     <line_editor
      control_name="LastPostcardRecipient"
      follows="left|top|right"
      height="20"
      layout="topleft"
-     left_delta="148"
+     left_pad="10"
      name="to_form"
      right="-10"
      top_delta="-4" />
@@ -31,35 +33,18 @@
      bottom_delta="23"
      follows="top|left"
      font="SansSerif"
+     height="16"
      layout="topleft"
      left="12"
-     name="from_label">
-        Your Email:
+     name="name_label"
+     width="60">
+        From:
     </text>
     <line_editor
      follows="left|top|right"
      height="20"
      layout="topleft"
-     left_delta="148"
-     name="from_form"
-     right="-10"
-     top_delta="-4" />
-    <text
-     type="string"
-     length="1"
-     bottom_delta="23"
-     follows="top|left"
-     font="SansSerif"
-     layout="topleft"
-     left="12"
-     name="name_label">
-        Your Name:
-    </text>
-    <line_editor
-     follows="left|top|right"
-     height="20"
-     layout="topleft"
-     left_delta="148"
+     left_pad="10"
      max_length_bytes="100"
      name="name_form"
      right="-10"
@@ -70,9 +55,11 @@
      bottom_delta="23"
      follows="top|left"
      font="SansSerif"
+     height="16"
      layout="topleft"
      left="12"
-     name="subject_label">
+     name="subject_label"
+     width="60">
         Subject:
     </text>
     <line_editor
@@ -80,7 +67,7 @@
      height="20"
      label="Type your subject here."
      layout="topleft"
-     left_delta="148"
+     left_pad="10"
      max_length_bytes="100"
      name="subject_form"
      right="-10"
@@ -89,11 +76,12 @@
      type="string"
      length="1"
      bottom_delta="23"
-     follows="top|left"
+     follows="top|left|right"
      font="SansSerif"
      layout="topleft"
      left="12"
-     name="msg_label">
+     name="msg_label"
+     right="-10">
         Message:
     </text>
     <text_editor