diff --git a/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs b/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs
index ac28bf0..2c9a8f1 100644
--- a/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs
+++ b/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs
@@ -40,7 +40,17 @@ namespace Hyena.Widgets
     {
         private Theme theme;
         protected Theme Theme {
-            get { return theme; }
+            get { 
+                if (theme == null) {
+                    InitTheme ();
+                }
+                return theme;
+            }
+        }
+
+        private void InitTheme () {
+            theme = Hyena.Gui.Theming.ThemeEngine.CreateTheme (this);
+            frame_width = (int)theme.Context.Radius + 1;
         }
 
         private Widget child;
@@ -91,8 +101,7 @@ namespace Hyena.Widgets
         protected override void OnStyleSet (Style previous_style)
         {
             base.OnStyleSet (previous_style);
-            theme = Hyena.Gui.Theming.ThemeEngine.CreateTheme (this);
-            frame_width = (int)theme.Context.Radius + 1;
+            InitTheme ();
         }
 
         protected override void OnSizeRequested (ref Requisition requisition)
@@ -169,15 +178,15 @@ namespace Hyena.Widgets
 
             Gdk.Rectangle rect = new Gdk.Rectangle (x, y, width, height);
 
-            theme.Context.ShowStroke = draw_border;
+            Theme.Context.ShowStroke = draw_border;
 
             if (fill_color_set) {
-                theme.DrawFrameBackground (cr, rect, fill_color);
+                Theme.DrawFrameBackground (cr, rect, fill_color);
             } else if (fill_pattern != null) {
-                theme.DrawFrameBackground (cr, rect, fill_pattern);
+                Theme.DrawFrameBackground (cr, rect, fill_pattern);
             } else {
-                theme.DrawFrameBackground (cr, rect, true);
-                theme.DrawFrameBorder (cr, rect);
+                Theme.DrawFrameBackground (cr, rect, true);
+                Theme.DrawFrameBorder (cr, rect);
             }
         }
 
