diff -r cffb35b0a173 lib/irrlicht/source/Irrlicht/CGUIButton.cpp
--- a/lib/irrlicht/source/Irrlicht/CGUIButton.cpp	Thu Sep 04 02:52:55 2008 +0200
+++ b/lib/irrlicht/source/Irrlicht/CGUIButton.cpp	Fri Sep 05 17:22:37 2008 +0200
@@ -440,6 +440,7 @@
 	out->addBool	("Border",		Border);
 	out->addBool	("UseAlphaChannel",	UseAlphaChannel);
 
+	out->addString("OverrideFont", OverrideFont ? OverrideFont->getName().c_str() : "" );
 	//   out->addString  ("OverrideFont",	OverrideFont);
 }
 
@@ -466,7 +467,8 @@
 
 	setDrawBorder(in->getAttributeAsBool("Border"));
 	UseAlphaChannel = in->getAttributeAsBool("UseAlphaChannel");
-
+
+	setOverrideFont(Environment->getFont( in->getAttributeAsString("OverrideFont").c_str() ));
 	//   setOverrideFont(in->getAttributeAsString("OverrideFont"));
 
 	updateAbsolutePosition();
diff -r cffb35b0a173 lib/irrlicht/source/Irrlicht/CGUIEditBox.cpp
--- a/lib/irrlicht/source/Irrlicht/CGUIEditBox.cpp	Thu Sep 04 02:52:55 2008 +0200
+++ b/lib/irrlicht/source/Irrlicht/CGUIEditBox.cpp	Fri Sep 05 17:22:37 2008 +0200
@@ -1326,7 +1326,8 @@
 	// IGUIEditBox::serializeAttributes(out,options);
 
 	out->addBool  ("OverrideColorEnabled",OverrideColorEnabled );
-	out->addColor ("OverrideColor",       OverrideColor);
+	out->addColor ("OverrideColor",       OverrideColor);
+	out->addString("OverrideFont", OverrideFont ? OverrideFont->getName().c_str() : "" );
 	// out->addFont("OverrideFont",OverrideFont);
 	out->addInt   ("MaxChars",            Max);
 	out->addBool  ("WordWrap",            WordWrap);
@@ -1349,7 +1350,8 @@
 	IGUIEditBox::deserializeAttributes(in,options);
 
 	setOverrideColor(in->getAttributeAsColor("OverrideColor"));
-	enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled"));
+	enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled"));
+	setOverrideFont(Environment->getFont( in->getAttributeAsString("OverrideFont").c_str() ));
 	setMax(in->getAttributeAsInt("MaxChars"));
 	setWordWrap(in->getAttributeAsBool("WordWrap"));
 	setMultiLine(in->getAttributeAsBool("MultiLine"));
diff -r cffb35b0a173 lib/irrlicht/source/Irrlicht/CGUIStaticText.cpp
--- a/lib/irrlicht/source/Irrlicht/CGUIStaticText.cpp	Thu Sep 04 02:52:55 2008 +0200
+++ b/lib/irrlicht/source/Irrlicht/CGUIStaticText.cpp	Fri Sep 05 17:22:37 2008 +0200
@@ -143,7 +143,10 @@
 
 //! Sets another skin independent font.
 void CGUIStaticText::setOverrideFont(IGUIFont* font)
-{
+{
+	if (OverrideFont == font)
+		return;
+
 	if (OverrideFont)
 		OverrideFont->drop();
 
@@ -426,7 +429,8 @@
 	out->addColor	("OverrideColor",       OverrideColor);
 	out->addEnum	("HTextAlign",          HAlign, GUIAlignmentNames);
 	out->addEnum	("VTextAlign",          VAlign, GUIAlignmentNames);
-
+
+	out->addString("OverrideFont", OverrideFont ? OverrideFont->getName().c_str() : "" );
 	// out->addFont ("OverrideFont",	OverrideFont);
 }
 
@@ -445,7 +449,8 @@
 
 	setTextAlignment( (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames),
                       (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames));
-
+
+	setOverrideFont(Environment->getFont( in->getAttributeAsString("OverrideFont").c_str() ));
 	// OverrideFont = in->getAttributeAsFont("OverrideFont");
 }
 
