diff --git a/aegisub/libaegisub/common/color.cpp b/aegisub/libaegisub/common/color.cpp
index 1822779115b1cd8b11a77c599e466e9555902af7..027632effcd92c131146cab6f4435bc49e3043ac 100644
--- a/aegisub/libaegisub/common/color.cpp
+++ b/aegisub/libaegisub/common/color.cpp
@@ -43,7 +43,9 @@ std::string Color::GetSsaFormatted() const {
 	return boost::lexical_cast<std::string>((a << 24) + (b << 16) + (g << 8) + r);
 }
 
-std::string Color::GetHexFormatted() const {
+std::string Color::GetHexFormatted(bool rgba) const {
+	if (rgba)
+		return str(boost::format("#%02X%02X%02X%02X") % (int)r % (int)g % (int)b % (int)a);
 	return str(boost::format("#%02X%02X%02X") % (int)r % (int)g % (int)b);
 }
 
diff --git a/aegisub/libaegisub/include/libaegisub/color.h b/aegisub/libaegisub/include/libaegisub/color.h
index b45b58fb93c24b85bea2bfa0e1a6f8b4ed9eeaa0..7b415b0eada7cf00f085b1cac7220821112243ef 100644
--- a/aegisub/libaegisub/include/libaegisub/color.h
+++ b/aegisub/libaegisub/include/libaegisub/color.h
@@ -33,7 +33,7 @@ namespace agi {
 		std::string GetAssStyleFormatted() const;
 		std::string GetAssOverrideFormatted() const;
 		std::string GetSsaFormatted() const;
-		std::string GetHexFormatted() const;
+		std::string GetHexFormatted(bool rgba=false) const;
 		std::string GetRgbFormatted() const;
 
 		operator std::string() const { return GetRgbFormatted(); }
diff --git a/aegisub/src/auto4_lua_dialog.cpp b/aegisub/src/auto4_lua_dialog.cpp
index 2b60282c83447b1669e575cc4d2938bda532468f..2ae6d3fd2eca82a4e2cccb124754d0e74d6a1189 100644
--- a/aegisub/src/auto4_lua_dialog.cpp
+++ b/aegisub/src/auto4_lua_dialog.cpp
@@ -206,7 +206,7 @@ namespace Automation4 {
 			}
 
 			bool CanSerialiseValue() const override { return true; }
-			std::string SerialiseValue() const override { return inline_string_encode(color.GetHexFormatted()); }
+			std::string SerialiseValue() const override { return inline_string_encode(color.GetHexFormatted(alpha)); }
 			void UnserialiseValue(const std::string &serialised) override { color = inline_string_decode(serialised); }
 
 			wxControl *Create(wxWindow *parent) override {
@@ -216,7 +216,7 @@ namespace Automation4 {
 			}
 
 			void LuaReadBack(lua_State *L) override {
-				lua_pushstring(L, color.GetHexFormatted().c_str());
+				lua_pushstring(L, color.GetHexFormatted(alpha).c_str());
 			}
 		};