diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 7aa965c9375de666a4c91909cd4026e23172199c..e2708e4e1827777998fa4b3ca1a5353c2a073fdf 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -52,6 +52,9 @@ else (USESYSTEMLIBS)
     set(BOOST_THREAD_LIBRARY 
         optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_thread-mt${addrsfx}.lib
         debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_thread-mt-gd${addrsfx}.lib)
+    set(BOOST_WAVE_LIBRARY 
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_wave-mt${addrsfx}.lib
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_wave-mt-gd${addrsfx}.lib)
   elseif (LINUX)
     set(BOOST_CONTEXT_LIBRARY
         optimized boost_context-mt${addrsfx}
@@ -77,6 +80,9 @@ else (USESYSTEMLIBS)
     set(BOOST_THREAD_LIBRARY
         optimized boost_thread-mt${addrsfx}
         debug boost_thread-mt${addrsfx}-d)
+    set(BOOST_WAVE_LIBRARY
+        optimized boost_wave-mt${addrsfx}
+        debug boost_wave-mt${addrsfx}-d)
   elseif (DARWIN)
     set(BOOST_CONTEXT_LIBRARY
         optimized boost_context-mt
@@ -102,6 +108,9 @@ else (USESYSTEMLIBS)
     set(BOOST_THREAD_LIBRARY
         optimized boost_thread-mt
         debug boost_thread-mt-d)
+    set(BOOST_WAVE_LIBRARY
+        optimized boost_wave-mt
+        debug boost_wave-mt-d)
   endif (WINDOWS)
 endif (USESYSTEMLIBS)
 
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index aa79c1f56bb6250463fd41ca2dae820d69e53351..9c66af112c751b86f73af89a1fa1a80726a62a23 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -1250,6 +1250,12 @@ void LLScrollListCtrl::setCommentText(const std::string& comment_text)
 	getChild<LLTextBox>("comment_text")->setValue(comment_text);
 }
 
+void LLScrollListCtrl::addCommentText(const std::string& comment_text)
+{
+	LLTextBox *ctrl = getChild<LLTextBox>("comment_text");
+	ctrl->appendText(comment_text, !ctrl->getText().empty()); // don't prepend newline if empty
+}
+
 LLScrollListItem* LLScrollListCtrl::addSeparator(EAddPosition pos)
 {
 	LLScrollListItem::Params separator_params;
diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h
index 8d636f8665028c9882cddd732f456c031ae82268..34a540b4407e2cb71c9095cb8b8d1ae230d72e3a 100644
--- a/indra/llui/llscrolllistctrl.h
+++ b/indra/llui/llscrolllistctrl.h
@@ -255,6 +255,7 @@ class LLScrollListCtrl : public LLUICtrl, public LLEditMenuHandler,
 	S32				getItemIndex( const LLUUID& item_id ) const;
 
 	void setCommentText( const std::string& comment_text);
+	void addCommentText( const std::string& comment_text);
 	LLScrollListItem* addSeparator(EAddPosition pos);
 
 	// "Simple" interface: use this when you're creating a list that contains only unique strings, only
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 3c924b7ef48536b0156df995e8e8f70b69c9f382..4292777085dedf3782084205c1779138b872cac3 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -2208,6 +2208,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
     ${BOOST_REGEX_LIBRARY}
     ${BOOST_FIBER_LIBRARY}
     ${BOOST_CONTEXT_LIBRARY}
+    ${BOOST_WAVE_LIBRARY}
     ${DBUSGLIB_LIBRARIES}
     ${OPENGL_LIBRARIES}
     ${FMODWRAPPER_LIBRARY} # must come after LLAudio
diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index b4deeca09b558f39fb41a2319fdae0fe52c1f4fc..de247592ab8ea9f812a0c75f6ffd527325102a10 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -92,8 +92,13 @@ void LLScriptEditor::drawLineNumbers()
 		S32 top = getRect().getHeight();
 		S32 bottom = 0;
 		
-		gl_rect_2d(left, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN, bottom, mReadOnlyBgColor.get() ); // line number area always read-only
-		gl_rect_2d(UI_TEXTEDITOR_LINE_NUMBER_MARGIN, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN-1, bottom, LLColor4::grey3); // separator
+		F32 alpha = getCurrentTransparency();
+		LLColor4 bg_color = mReadOnly ? mReadOnlyBgColor.get()
+									  : hasFocus() ? mFocusBgColor.get()
+												   : mWriteableBgColor.get();
+		
+		gl_rect_2d(left, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN, bottom, bg_color % alpha, FALSE ); // line number area always read-only
+		gl_rect_2d(UI_TEXTEDITOR_LINE_NUMBER_MARGIN, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN-1, bottom, LLColor4::grey3 % alpha); // separator
 		
 		S32 last_line_num = -1;
 		
diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp
index b5f833e7b451d36a4e80613d7c1f1db849f62d08..b1fb66e75fc43063586565e077386564fb9e1d19 100644
--- a/indra/newview/llscriptfloater.cpp
+++ b/indra/newview/llscriptfloater.cpp
@@ -610,7 +610,7 @@ LLScriptFloaterManager::EObjectType LLScriptFloaterManager::getObjectType(const
 		return it->second;
 	}
 
-	LL_WARNS() << "Unknown object type" << LL_ENDL;
+	LL_WARNS() << "Unknown object type: " << notification->getName() << LL_ENDL;
 	return OBJ_UNKNOWN;
 }
 
@@ -654,6 +654,7 @@ LLScriptFloaterManager::object_type_map LLScriptFloaterManager::initObjectTypeMa
 	type_map["ScriptDialogGroup"] = OBJ_SCRIPT;
 	type_map["LoadWebPage"] = OBJ_LOAD_URL;
 	type_map["ObjectGiveItem"] = OBJ_GIVE_INVENTORY;
+	type_map["OwnObjectGiveItem"] = OBJ_GIVE_INVENTORY;
 	return type_map;
 }