diff --git a/config/mxgui_settings.h b/config/mxgui_settings.h
index 5c54fe6b49c5478d5655ca6e818af3f895fa16b5..1d2a77c9d7363f35118d2ab7daaa160d027a974f 100644
--- a/config/mxgui_settings.h
+++ b/config/mxgui_settings.h
@@ -33,7 +33,7 @@
 #ifndef MXGUI_SETTINGS_H
 #define	MXGUI_SETTINGS_H
 
-#define MXGUI_SETTINGS_VERSION 101
+#define MXGUI_SETTINGS_VERSION 102
 
 // Before you can compile mxgui you have to configure it by editing this
 // file. After that, comment out this line to disable the reminder error.
@@ -100,6 +100,9 @@ static const unsigned int level2MaxNumApps=4;
 #define MXGUI_FONT_TAHOMA
 #define MXGUI_ENABLE_BOLD_FONTS
 
+//Default font
+#define defaultFont droid11
+
 #else //_MIOSIX
 
 // Enable or disable level 2.
@@ -151,6 +154,9 @@ static const unsigned int SIMULATOR_BGCOLOR=0;
 #define MXGUI_FONT_TAHOMA
 #define MXGUI_ENABLE_BOLD_FONTS
 
+//Default font
+#define defaultFont droid11
+
 #endif //_MIOSIX
 
 } //namespace mxgui
diff --git a/display.cpp b/display.cpp
index 936b3b41f25c65486730b34a1f76ef2408e9016f..dfda80781600d5773e3bb360d69720178208474f 100644
--- a/display.cpp
+++ b/display.cpp
@@ -29,7 +29,7 @@
 #include "misc_inst.h"
 #include "pthread_lock.h"
 
-#if MXGUI_SETTINGS_VERSION != 101
+#if MXGUI_SETTINGS_VERSION != 102
 #error Wrong mxgui_settings.h version. You need to upgrade it.
 #endif
 
@@ -70,7 +70,7 @@ DisplayManager::DisplayManager()
 // class Display
 //
 
-Display::Display() : isDisplayOn(true), font(miscFixed)
+Display::Display() : isDisplayOn(true), font(defaultFont)
 {
     pthread_mutexattr_t temp;
     pthread_mutexattr_init(&temp);
diff --git a/drivers/display_bitsboard.cpp b/drivers/display_bitsboard.cpp
index cc4e197639a110917eb3210926dcf0f584a1eb2d..bd1bd8f00ed7e69a8020dd2547ed58a7236ea1db 100644
--- a/drivers/display_bitsboard.cpp
+++ b/drivers/display_bitsboard.cpp
@@ -269,7 +269,6 @@ DisplayImpl::~DisplayImpl()
 
 DisplayImpl::DisplayImpl(): buffer(0), last()
 {
-    setFont(miscFixed);
     setTextColor(make_pair(Color(black),Color(white)));
     {
         FastInterruptDisableLock dLock;
diff --git a/drivers/display_mp3v2.cpp b/drivers/display_mp3v2.cpp
index c5cd5b383f9f4dfcba7b8ca5b606ae6666052114..c11ae83e60ad992feb94976a77f96858366b3efe 100644
--- a/drivers/display_mp3v2.cpp
+++ b/drivers/display_mp3v2.cpp
@@ -358,7 +358,6 @@ DisplayImpl::DisplayImpl(): buffer(0)
     //Power up sequence -- end
     //
     
-    setFont(droid11);
     setTextColor(make_pair(Color(0xffff),Color(0x0000)));
     clear(black);
 }
diff --git a/drivers/display_oledboard2.cpp b/drivers/display_oledboard2.cpp
index a0bd374561ac2f54403b609df3cdc2a4cbde15ed..42d4cddfb59fa76eed3d791de0d64af6fb3301bf 100644
--- a/drivers/display_oledboard2.cpp
+++ b/drivers/display_oledboard2.cpp
@@ -485,7 +485,6 @@ DisplayImpl::DisplayImpl()
     sendCommand8(0x23,0x00);
     sendCommand8(0x26,0xa0);
     
-    setFont(droid21);
     setTextColor(make_pair(Color(0xffff),Color(0x0000)));
     clear(black);
     doTurnOn();
diff --git a/drivers/display_qt.cpp b/drivers/display_qt.cpp
index d27cf615346952e19b1116008b50d87f116c8025..7e58fcb5164e42d6944d6f397162bf23a41d64f6 100644
--- a/drivers/display_qt.cpp
+++ b/drivers/display_qt.cpp
@@ -245,7 +245,6 @@ DisplayImpl::~DisplayImpl()
 DisplayImpl::DisplayImpl(): buffer(0), last(), beginPixelCalled(false),
                             backend(QTBackend::instance())
 {
-    setFont(droid11);
     setTextColor(make_pair(Color(SIMULATOR_FGCOLOR),Color(SIMULATOR_BGCOLOR)));
 }
 
diff --git a/drivers/display_redbull_v2.cpp b/drivers/display_redbull_v2.cpp
index e1daaf9d476198adf0a76b4f31ed515cfd40648b..9b3987f7d88fc23777ae5ffc49bfd4d2ce3758ff 100644
--- a/drivers/display_redbull_v2.cpp
+++ b/drivers/display_redbull_v2.cpp
@@ -291,7 +291,6 @@ DisplayImpl::DisplayImpl(): buffer(0)
     writeReg(0x004f,0);
     writeReg(0x004e,0);
     //Fill display
-    setFont(droid11);
     setTextColor(make_pair(white, black));
     clear(black);
 }
diff --git a/drivers/display_sony-newman.cpp b/drivers/display_sony-newman.cpp
index db89885a83d016a731c81b84c05043e4dad0f11b..328b4ed9fe968d0626aca1ce911d5b63d7d57ed5 100644
--- a/drivers/display_sony-newman.cpp
+++ b/drivers/display_sony-newman.cpp
@@ -375,7 +375,6 @@ DisplayImpl::~DisplayImpl() {}
 DisplayImpl::DisplayImpl(): which(0)
 {
     doTurnOn();
-    setFont(droid11);
     setTextColor(make_pair(Color(0xffff),Color(0x0000)));
 }
 
diff --git a/drivers/display_st7735.cpp b/drivers/display_st7735.cpp
index 365f826127c5336a70d94e2de6e3ef28757089ac..9819860e0b56cb8db8b874059498cba717ca2901 100644
--- a/drivers/display_st7735.cpp
+++ b/drivers/display_st7735.cpp
@@ -333,7 +333,6 @@ void DisplayGenericST7735::initialize() {
     sendCmds(initST7735b);
 
     doTurnOn();
-    setFont(droid11);
     setTextColor(make_pair(white, black));
 }
 
diff --git a/drivers/display_stm3210e-eval.cpp b/drivers/display_stm3210e-eval.cpp
index fea55f37c82cb2b7c7981572b86b46a405921ddb..feb0ad57e1c4ab2eef21d0a69aa1ca72811770d6 100644
--- a/drivers/display_stm3210e-eval.cpp
+++ b/drivers/display_stm3210e-eval.cpp
@@ -290,7 +290,6 @@ DisplayImpl::DisplayImpl(): buffer(0), displayType(UNKNOWN)
             break;
     }
 
-    setFont(droid11);
     setTextColor(make_pair(Color(0xffff),Color(0x0000)));
     clear(black);
 }
diff --git a/drivers/display_stm32f4discovery.cpp b/drivers/display_stm32f4discovery.cpp
index f0799a13221176a6c04b02047ccd100b568f4dd5..4448c116744c6718e52a033b3126fa711426b889 100644
--- a/drivers/display_stm32f4discovery.cpp
+++ b/drivers/display_stm32f4discovery.cpp
@@ -469,7 +469,6 @@ DisplayImpl::DisplayImpl()
             | 0                //no dithering
             | LTDC_GCR_LTDCEN; //Display enabled
     
-    setFont(droid11);
     setTextColor(make_pair(Color(0xffff),Color(0x0000)));
     clear(black);
 }
@@ -1317,7 +1316,6 @@ DisplayImpl::DisplayImpl()
     // Update the display
     DSI->WCR |= DSI_WCR_LTDCEN;
 
-    setFont(droid11);
     setTextColor(make_pair(Color(0xffff), Color(0x0000)));
     clear(black);
 }
diff --git a/drivers/display_strive.cpp b/drivers/display_strive.cpp
index 7e95ba31f89bf29d8d6a2b2b905dae285d696725..a196ca3f647f235ca22fb5e10a9f292a23943cee 100644
--- a/drivers/display_strive.cpp
+++ b/drivers/display_strive.cpp
@@ -479,7 +479,6 @@ DisplayImpl::DisplayImpl(): buffer(0)
     writeReg(0x07, D0 | D1 |DTE | GON | BASEE);
 
     //Fill display
-    setFont(droid11);
     setTextColor(make_pair(white, black));
     clear(black);
 }
diff --git a/drivers/display_win.cpp b/drivers/display_win.cpp
index 483aa47a5d8e1451a38a62bee64719bddba16805..d6d863537bbc08c0bcf25416b4028b96fcdce370 100644
--- a/drivers/display_win.cpp
+++ b/drivers/display_win.cpp
@@ -250,7 +250,6 @@ DisplayImpl::DisplayImpl():
         beginPixelCalled(false),
         backend(WinBackend::instance())
 {
-    setFont(droid11);
     setTextColor(make_pair(Color(0xffff), Color(0x0000)));
 }
 
diff --git a/level2/application.cpp b/level2/application.cpp
index 8ab1ee6b0d29959e6c1d5320327179c4301d6fca..67e17007d9858b00ba31b0d9b2ff341d484b36e7 100644
--- a/level2/application.cpp
+++ b/level2/application.cpp
@@ -67,17 +67,7 @@ Drawable::~Drawable()
 // class Window
 //
 
-Window::Window() : prefs(white,black,
-#ifdef MXGUI_FONT_DROID11
-    droid11),
-#elif defined(MXGUI_FONT_TAHOMA)
-    tahoma),
-#elif defined(MXGUI_FONT_MISCFIXED)
-    miscFixed),
-#else
-#error "Need a font"
-#endif
-    redrawNeeded(false)
+Window::Window() : prefs(white,black,defaultFont), redrawNeeded(false)
 {
     pthread_mutex_init(&mutex,NULL);
     pthread_cond_init(&cond,NULL);
diff --git a/level2/simple_plot.cpp b/level2/simple_plot.cpp
index 502bd1ca757a6b31bfa81a36f9c52cb1c1dbe98c..989934ba33dcbe66289d70b9358ff705f8194738 100644
--- a/level2/simple_plot.cpp
+++ b/level2/simple_plot.cpp
@@ -13,8 +13,7 @@ namespace mxgui {
 // class SimplePlot
 //
 
-SimplePlot::SimplePlot(Point upperLeft, Point lowerRight) : upperLeft(upperLeft), lowerRight(lowerRight),
-    font(droid11)
+SimplePlot::SimplePlot(Point upperLeft, Point lowerRight) : upperLeft(upperLeft), lowerRight(lowerRight), font(defaultFont)
 {
     foreground=white;
     background=black;
diff --git a/level2/simple_plot.h b/level2/simple_plot.h
index 01318e3e5f39dc5002bdc4177584e163b6459609..559e05a5d226cf5586fde7b3321f4c2296db7d14 100644
--- a/level2/simple_plot.h
+++ b/level2/simple_plot.h
@@ -30,6 +30,8 @@ public:
     
     void draw(DrawingContext& dc, const std::vector<Dataset>& dataset,
               bool fullRedraw=false);
+
+    void setFont(const Font& font) { this->font=font; }
     
     Point upperLeft;
     Point lowerRight;