diff --git a/Projects/CodeBlocks/SleepyHead.depend b/Projects/CodeBlocks/SleepyHead.depend
index aa6a2b95..5a489a52 100644
--- a/Projects/CodeBlocks/SleepyHead.depend
+++ b/Projects/CodeBlocks/SleepyHead.depend
@@ -8210,12 +8210,12 @@
 	"wx/treebase.h"
 	"wx/hashmap.h"
 
-1307708368 source:/home/mark/projects/git/sleepyhead/src/GUIFrame.cpp
+1307861037 source:/home/mark/projects/git/sleepyhead/src/GUIFrame.cpp
 	"wx/wxprec.h"
 	<wx/wx.h>
 	"GUIFrame.h"
 
-1307708368 /home/mark/projects/git/sleepyhead/src/GUIFrame.h
+1307861037 /home/mark/projects/git/sleepyhead/src/GUIFrame.h
 	<wx/intl.h>
 	<wx/string.h>
 	<wx/bitmap.h>
@@ -8231,10 +8231,10 @@
 	<wx/frame.h>
 	<wx/aui/aui.h>
 	<wx/calctrl.h>
-	<wx/sizer.h>
-	<wx/scrolwin.h>
 	<wx/panel.h>
 	<wx/html/htmlwin.h>
+	<wx/sizer.h>
+	<wx/scrolwin.h>
 	<wx/radiobut.h>
 	<wx/stattext.h>
 	<wx/datectrl.h>
@@ -8258,7 +8258,7 @@
 1307418393 /home/mark/projects/git/sleepyhead/src/SleepyHeadApp.h
 	<wx/app.h>
 
-1307772405 /home/mark/projects/git/sleepyhead/src/SleepyHeadMain.h
+1307862247 /home/mark/projects/git/sleepyhead/src/SleepyHeadMain.h
 	<wx/listbox.h>
 	<wx/treectrl.h>
 	"SleepyHeadApp.h"
@@ -8300,13 +8300,14 @@
 	<map>
 	"tinyxml/tinyxml.h"
 
-1307789091 /home/mark/projects/git/sleepyhead/src/graphs/graph.h
+1307862530 /home/mark/projects/git/sleepyhead/src/graphs/graph.h
 	<wx/dcgraph.h>
 	<wx/glcanvas.h>
+	<FTGL/ftgl.h>
 	<sleeplib/machine.h>
 	<list>
 
-1307858279 /home/mark/projects/git/sleepyhead/src/version.h
+1307862688 /home/mark/projects/git/sleepyhead/src/version.h
 
 1307627540 /home/mark/projects/git/sleepyhead/src/libs/sleeplib/prs1_loader.h
 	"machine.h"
@@ -8324,7 +8325,7 @@
 	"preferences.h"
 	"tinyxml/tinyxml.h"
 
-1307855899 source:/home/mark/projects/git/sleepyhead/src/SleepyHeadMain.cpp
+1307862323 source:/home/mark/projects/git/sleepyhead/src/SleepyHeadMain.cpp
 	"wx_pch.h"
 	"version.h"
 	<wx/app.h>
@@ -8344,13 +8345,12 @@
 	"sleeplib/profiles.h"
 	"sleeplib/machine_loader.h"
 
-1307857375 source:/home/mark/projects/git/sleepyhead/src/graphs/graph.cpp
+1307862554 source:/home/mark/projects/git/sleepyhead/src/graphs/graph.cpp
 	<wx/settings.h>
 	<wx/dcbuffer.h>
 	<wx/graphics.h>
 	<wx/glcanvas.h>
 	<wx/log.h>
-	<FTGL/ftgl.h>
 	<math.h>
 	<OpenGL/gl.h>
 	<AGL/agl.h>
diff --git a/src/GUIFrame.cpp b/src/GUIFrame.cpp
index c2e40c86..e68664f8 100644
--- a/src/GUIFrame.cpp
+++ b/src/GUIFrame.cpp
@@ -147,18 +147,6 @@ DailyPanel::DailyPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, con
 	Calendar = new wxCalendarCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_MONDAY_FIRST|wxCAL_SEQUENTIAL_MONTH_SELECTION|wxCAL_SHOW_SURROUNDING_WEEKS );
 	m_mgr.AddPane( Calendar, wxAuiPaneInfo() .Left() .Caption( wxT("Selected Day") ).PaneBorder( false ).Dock().Fixed().BottomDockable( false ).TopDockable( false ) );
 	
-	ScrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
-	ScrolledWindow->SetScrollRate( 5, 5 );
-	m_mgr.AddPane( ScrolledWindow, wxAuiPaneInfo() .Center() .Caption( wxT("Daily Information") ).CloseButton( false ).MaximizeButton( false ).MinimizeButton( false ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).Row( 0 ).Layer( 1 ).CentrePane() );
-	
-	fgSizer = new wxFlexGridSizer( 0, 1, 0, 0 );
-	fgSizer->AddGrowableCol( 0 );
-	fgSizer->SetFlexibleDirection( wxVERTICAL );
-	fgSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
-	
-	ScrolledWindow->SetSizer( fgSizer );
-	ScrolledWindow->Layout();
-	fgSizer->Fit( ScrolledWindow );
 	Notebook = new wxAuiNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TAB_MOVE|wxAUI_NB_TAB_SPLIT );
 	m_mgr.AddPane( Notebook, wxAuiPaneInfo() .Left() .Caption( wxT("Summary") ).PaneBorder( false ).Dock().Resizable().FloatingSize( wxSize( 280,480 ) ).DockFixed( false ).Position( 1 ).BestSize( wxSize( 280,480 ) ) );
 	
diff --git a/src/GUIFrame.h b/src/GUIFrame.h
index 074104c5..01a637bb 100644
--- a/src/GUIFrame.h
+++ b/src/GUIFrame.h
@@ -24,10 +24,10 @@
 #include <wx/frame.h>
 #include <wx/aui/aui.h>
 #include <wx/calctrl.h>
-#include <wx/sizer.h>
-#include <wx/scrolwin.h>
 #include <wx/panel.h>
 #include <wx/html/htmlwin.h>
+#include <wx/sizer.h>
+#include <wx/scrolwin.h>
 #include <wx/radiobut.h>
 #include <wx/stattext.h>
 #include <wx/datectrl.h>
@@ -91,8 +91,6 @@ class DailyPanel : public wxPanel
 	
 	protected:
 		wxCalendarCtrl* Calendar;
-		wxScrolledWindow* ScrolledWindow;
-		wxFlexGridSizer* fgSizer;
 		wxAuiNotebook* Notebook;
 		
 		// Virtual event handlers, overide them in your derived class
diff --git a/src/SleepyHeadMain.cpp b/src/SleepyHeadMain.cpp
index e3f38a4b..53578141 100644
--- a/src/SleepyHeadMain.cpp
+++ b/src/SleepyHeadMain.cpp
@@ -596,6 +596,21 @@ void Summary::OnClose(wxCloseEvent &event)
 Daily::Daily(wxWindow *win,Profile *p)
 :DailyPanel(win),profile(p)
 {
+    GraphWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+	GraphWindow->SetScrollRate( 5, 5 );
+
+	m_mgr.AddPane( GraphWindow, wxAuiPaneInfo() .Center() .Caption( wxT("Graphs") ).CloseButton( false ).MaximizeButton( false ).MinimizeButton( false ).PinButton( true ).Dock().Resizable().FloatingSize( wxDefaultSize ).DockFixed( false ).MinSize( wxSize( 440,400 ) ) );
+    m_mgr.Update();
+	gwSizer = new wxFlexGridSizer( 0, 1, 0, 0 );
+	gwSizer->AddGrowableCol( 0 );
+	gwSizer->SetFlexibleDirection( wxVERTICAL );
+	gwSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
+
+	GraphWindow->SetSizer( gwSizer );
+	GraphWindow->Layout();
+	gwSizer->Fit(GraphWindow);
+
+
     tiap_bmp=teap_bmp=tap_bmp=ahi_bmp=NULL;
     HTMLInfo=new wxHtmlWindow(this);
     HTMLInfo->SetBorders(4);
@@ -608,20 +623,20 @@ Daily::Daily(wxWindow *win,Profile *p)
     AddCPAPData(tap_iap=new TAPData(CPAP_IAP));
     AddCPAPData(tap=new TAPData(CPAP_Pressure));
 
-    TAP=new gGraphWindow(ScrolledWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER);  //Time@Pressure
+    TAP=new gGraphWindow(GraphWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER);  //Time@Pressure
     //TAP->SetMargins(20,15,5,50);
     TAP->SetMargins(0,1,0,1);
     TAP->AddLayer(new gCandleStick(tap));
 
-    TAP_EAP=new gGraphWindow(ScrolledWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER); //Time@EPAP
+    TAP_EAP=new gGraphWindow(GraphWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER); //Time@EPAP
     TAP_EAP->SetMargins(0,1,0,1);
     TAP_EAP->AddLayer(new gCandleStick(tap_eap));
 
-    TAP_IAP=new gGraphWindow(ScrolledWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER); //Time@IPAP
+    TAP_IAP=new gGraphWindow(GraphWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER); //Time@IPAP
     TAP_IAP->SetMargins(0,1,0,1);
     TAP_IAP->AddLayer(new gCandleStick(tap_iap));
 
-    G_AHI=new gGraphWindow(ScrolledWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER); //Event Breakdown")
+    G_AHI=new gGraphWindow(GraphWindow,-1,wxT(""),wxPoint(0,0), wxSize(600,30), wxNO_BORDER); //Event Breakdown")
     G_AHI->SetMargins(0,1,0,1);
     AddCPAPData(g_ahi=new AHIData());
     gCandleStick *l=new gCandleStick(g_ahi);
@@ -644,7 +659,7 @@ Daily::Daily(wxWindow *win,Profile *p)
     //pulse->ForceMinY(40);
     //pulse->ForceMaxY(120);
 
-    PULSE=new gGraphWindow(ScrolledWindow,-1,wxT("Pulse"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
+    PULSE=new gGraphWindow(GraphWindow,-1,wxT("Pulse"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
     PULSE->AddLayer(new gXAxis(wxBLACK));
     PULSE->AddLayer(new gYAxis(wxBLACK));
     PULSE->AddLayer(new gFooBar());
@@ -653,7 +668,7 @@ Daily::Daily(wxWindow *win,Profile *p)
     AddOXIData(spo2=new EventData(OXI_SPO2,0,65536,true));
     //spo2->ForceMinY(60);
     //spo2->ForceMaxY(100);
-    SPO2=new gGraphWindow(ScrolledWindow,-1,wxT("SpO2"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
+    SPO2=new gGraphWindow(GraphWindow,-1,wxT("SpO2"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
     SPO2->AddLayer(new gXAxis(wxBLACK));
     SPO2->AddLayer(new gYAxis(wxBLACK));
     SPO2->AddLayer(new gFooBar());
@@ -661,31 +676,35 @@ Daily::Daily(wxWindow *win,Profile *p)
     SPO2->LinkZoom(PULSE);
     PULSE->LinkZoom(SPO2);
 
+
+
+    AddCPAPData(leakdata=new EventData(CPAP_Leak,0));
+    //leakdata->ForceMinY(0);
+    //leakdata->ForceMaxY(120);
+    LEAK=new gGraphWindow(GraphWindow,-1,wxT("Leaks"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
+    LEAK->AddLayer(new gXAxis(wxBLACK));
+    LEAK->AddLayer(new gYAxis(wxBLACK));
+    LEAK->AddLayer(new gFooBar());
+    LEAK->AddLayer(new gLineChart(leakdata,wxPURPLE,4096,false,false,false));
+
+
     AddCPAPData(snore=new EventData(CPAP_SnoreGraph,0));
     //snore->ForceMinY(0);
     //snore->ForceMaxY(15);
 
-    SNORE=new gGraphWindow(ScrolledWindow,-1,wxT("Snore"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
+    SNORE=new gGraphWindow(GraphWindow,-1,wxT("Snore"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
     SNORE->AddLayer(new gXAxis(wxBLACK));
     SNORE->AddLayer(new gYAxis(wxBLACK));
     SNORE->AddLayer(new gFooBar());
     SNORE->AddLayer(new gLineChart(snore,wxDARK_GREY,4096,false,false,true));
 
 
-    AddCPAPData(leakdata=new EventData(CPAP_Leak,0));
-    //leakdata->ForceMinY(0);
-    //leakdata->ForceMaxY(120);
-    LEAK=new gGraphWindow(ScrolledWindow,-1,wxT("Leaks"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
-    LEAK->AddLayer(new gXAxis(wxBLACK));
-    LEAK->AddLayer(new gYAxis(wxBLACK));
-    LEAK->AddLayer(new gFooBar());
-    LEAK->AddLayer(new gLineChart(leakdata,wxPURPLE,4096,false,false,false));
 
     AddCPAPData(pressure_iap=new EventData(CPAP_IAP));
     AddCPAPData(pressure_eap=new EventData(CPAP_EAP));
     AddCPAPData(prd=new EventData(CPAP_Pressure));
 
-    PRD=new gGraphWindow(ScrolledWindow,-1,wxT("Pressure"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
+    PRD=new gGraphWindow(GraphWindow,-1,wxT("Pressure"),wxPoint(0,0), wxSize(600,130), wxNO_BORDER);
     PRD->AddLayer(new gXAxis(wxBLACK));
     PRD->AddLayer(new gYAxis(wxBLACK));
     PRD->AddLayer(new gFooBar());
@@ -694,7 +713,7 @@ Daily::Daily(wxWindow *win,Profile *p)
     PRD->AddLayer(new gLineChart(pressure_eap,wxRED,4096,false,true,true));
 
     AddCPAPData(frw=new WaveData(CPAP_FlowRate));
-    FRW=new gGraphWindow(ScrolledWindow,-1,wxT("Flow Rate"),wxPoint(0,0), wxSize(600,150), wxNO_BORDER);
+    FRW=new gGraphWindow(GraphWindow,-1,wxT("Flow Rate"),wxPoint(0,0), wxSize(600,150), wxNO_BORDER);
 
     AddCPAPData(flags[0]=new FlagData(CPAP_CSR,7,1,0));
     AddCPAPData(flags[1]=new FlagData(CPAP_ClearAirway,6));
@@ -724,7 +743,7 @@ Daily::Daily(wxWindow *win,Profile *p)
     FRW->AddLayer(new gLineOverlayBar(flags[2],wxAQUA,wxT("OA")));
     FRW->AddLayer(new gLineOverlayBar(flags[1],wxPURPLE,wxT("CA")));
 
-    SF=new gGraphWindow(ScrolledWindow,-1,wxT("Event Flags"),wxPoint(0,0), wxSize(600,180), wxNO_BORDER);
+    SF=new gGraphWindow(GraphWindow,-1,wxT("Event Flags"),wxPoint(0,0), wxSize(600,180), wxNO_BORDER);
   //  SF->SetMargins(10,15,20,80);
 
 //    #if defined(__UNIX__)
@@ -766,13 +785,15 @@ Daily::Daily(wxWindow *win,Profile *p)
     SF->AddLayer(new gXAxis(wxBLACK));
     SF->AddLayer(new gFooBar());
 
-    fgSizer->Add(SF,1,wxEXPAND);
-    fgSizer->Add(FRW,1,wxEXPAND);
-    fgSizer->Add(PRD,1,wxEXPAND);
-    fgSizer->Add(LEAK,1,wxEXPAND);
-    fgSizer->Add(SNORE,1,wxEXPAND);
-    fgSizer->Add(PULSE,1,wxEXPAND);
-    fgSizer->Add(SPO2,1,wxEXPAND);
+    gwSizer->Add(SF,1,wxEXPAND);
+    gwSizer->Add(FRW,1,wxEXPAND);
+    gwSizer->Add(PRD,1,wxEXPAND);
+    gwSizer->Add(LEAK,1,wxEXPAND);
+    gwSizer->Add(SNORE,1,wxEXPAND);
+    gwSizer->Add(PULSE,1,wxEXPAND);
+    gwSizer->Add(SPO2,1,wxEXPAND);
+
+    gwSizer->Layout();
     G_AHI->Hide();
     TAP->Hide();
     TAP_IAP->Hide();
@@ -1107,8 +1128,8 @@ void Daily::RefreshData()
         PULSE->Show(false);
         SPO2->Show(false);
     }
-    fgSizer->Layout();
-    ScrolledWindow->FitInside();
+    gwSizer->Layout();
+    GraphWindow->FitInside();
 
     if (cpap) {
 
diff --git a/src/SleepyHeadMain.h b/src/SleepyHeadMain.h
index c5985376..cd2fec52 100644
--- a/src/SleepyHeadMain.h
+++ b/src/SleepyHeadMain.h
@@ -85,6 +85,11 @@ protected:
 
     wxBitmap *ahi_bmp,*tap_bmp,*teap_bmp,*tiap_bmp;
 
+    // Add it's own wxGLCanvas in place of scrolledwindow
+    wxScrolledWindow *GraphWindow;
+    wxFlexGridSizer* gwSizer;
+
+
 };
 
 const wxEventType wxEVT_DO_SCREENSHOT = wxNewEventType();
diff --git a/src/WxWizFrame.fbp b/src/WxWizFrame.fbp
index e927d3c6..4cf3c08a 100644
--- a/src/WxWizFrame.fbp
+++ b/src/WxWizFrame.fbp
@@ -760,100 +760,6 @@
                 <event name="OnSize"></event>
                 <event name="OnUpdateUI"></event>
             </object>
-            <object class="wxScrolledWindow" expanded="1">
-                <property name="BottomDockable">1</property>
-                <property name="LeftDockable">1</property>
-                <property name="RightDockable">1</property>
-                <property name="TopDockable">1</property>
-                <property name="aui_name"></property>
-                <property name="best_size"></property>
-                <property name="bg"></property>
-                <property name="caption">Daily Information</property>
-                <property name="caption_visible">1</property>
-                <property name="center_pane">1</property>
-                <property name="close_button">0</property>
-                <property name="context_help"></property>
-                <property name="context_menu">1</property>
-                <property name="default_pane">0</property>
-                <property name="dock">Dock</property>
-                <property name="dock_fixed">1</property>
-                <property name="docking">Center</property>
-                <property name="enabled">1</property>
-                <property name="fg"></property>
-                <property name="floatable">1</property>
-                <property name="font"></property>
-                <property name="gripper">0</property>
-                <property name="hidden">0</property>
-                <property name="id">wxID_ANY</property>
-                <property name="layer">1</property>
-                <property name="max_size"></property>
-                <property name="maximize_button">0</property>
-                <property name="maximum_size"></property>
-                <property name="min_size"></property>
-                <property name="minimize_button">0</property>
-                <property name="minimum_size">-1,-1</property>
-                <property name="moveable">1</property>
-                <property name="name">ScrolledWindow</property>
-                <property name="pane_border">1</property>
-                <property name="pane_position">779,393</property>
-                <property name="pane_size">-1,-1</property>
-                <property name="permission">protected</property>
-                <property name="pin_button">1</property>
-                <property name="pos"></property>
-                <property name="position"></property>
-                <property name="resize">Resizable</property>
-                <property name="row">0</property>
-                <property name="scroll_rate_x">5</property>
-                <property name="scroll_rate_y">5</property>
-                <property name="show">1</property>
-                <property name="size"></property>
-                <property name="subclass"></property>
-                <property name="toolbar_pane">0</property>
-                <property name="tooltip"></property>
-                <property name="validator_data_type"></property>
-                <property name="validator_style">wxFILTER_NONE</property>
-                <property name="validator_type">wxDefaultValidator</property>
-                <property name="validator_variable"></property>
-                <property name="window_extra_style"></property>
-                <property name="window_name"></property>
-                <property name="window_style">wxHSCROLL|wxVSCROLL</property>
-                <event name="OnChar"></event>
-                <event name="OnEnterWindow"></event>
-                <event name="OnEraseBackground"></event>
-                <event name="OnKeyDown"></event>
-                <event name="OnKeyUp"></event>
-                <event name="OnKillFocus"></event>
-                <event name="OnLeaveWindow"></event>
-                <event name="OnLeftDClick"></event>
-                <event name="OnLeftDown"></event>
-                <event name="OnLeftUp"></event>
-                <event name="OnMiddleDClick"></event>
-                <event name="OnMiddleDown"></event>
-                <event name="OnMiddleUp"></event>
-                <event name="OnMotion"></event>
-                <event name="OnMouseEvents"></event>
-                <event name="OnMouseWheel"></event>
-                <event name="OnPaint"></event>
-                <event name="OnRightDClick"></event>
-                <event name="OnRightDown"></event>
-                <event name="OnRightUp"></event>
-                <event name="OnSetFocus"></event>
-                <event name="OnSize"></event>
-                <event name="OnUpdateUI"></event>
-                <object class="wxFlexGridSizer" expanded="1">
-                    <property name="cols">1</property>
-                    <property name="flexible_direction">wxVERTICAL</property>
-                    <property name="growablecols">0</property>
-                    <property name="growablerows"></property>
-                    <property name="hgap">0</property>
-                    <property name="minimum_size"></property>
-                    <property name="name">fgSizer</property>
-                    <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_ALL</property>
-                    <property name="permission">protected</property>
-                    <property name="rows">0</property>
-                    <property name="vgap">0</property>
-                </object>
-            </object>
             <object class="wxAuiNotebook" expanded="1">
                 <property name="BottomDockable">1</property>
                 <property name="LeftDockable">1</property>
diff --git a/src/graphs/graph.cpp b/src/graphs/graph.cpp
index a4c9be53..1a43b2aa 100644
--- a/src/graphs/graph.cpp
+++ b/src/graphs/graph.cpp
@@ -10,7 +10,6 @@ License: LGPL
 #include <wx/graphics.h>
 #include <wx/glcanvas.h>
 #include <wx/log.h>
-#include <FTGL/ftgl.h>
 #include <math.h>
 
 
@@ -55,7 +54,8 @@ bool gfont_init=false;
 
 FTFont *normalfont=NULL;
 FTFont *largefont=NULL;
-FTFont *rotfont=NULL;
+FTFont *texfont=NULL;
+//FTFont *rotfont=NULL;
 
 list<wxString> font_paths;
 
@@ -77,7 +77,13 @@ void GraphInit()
 
         normalfont=new FTGLPixmapFont(fontfile.mb_str());
         largefont=new FTGLPixmapFont(fontfile.mb_str());
-        rotfont=new FTGLTextureFont(fontfile.mb_str());
+        texfont=new FTGLTextureFont(pref.Get("{home}{sep}FreeSans.ttf").mb_str()); // each context needs it's own texture font. Should be sharing one context..
+        if (texfont->Error()) {
+            delete texfont;
+            texfont=NULL;
+        } else {
+            texfont->FaceSize(15);
+        }
         if (normalfont->Error()) {
             delete normalfont;
             normalfont=NULL;
@@ -86,13 +92,9 @@ void GraphInit()
             delete largefont;
             largefont=NULL;
         }
-        if (rotfont->Error()) {
-            delete rotfont;
-            rotfont=NULL;
-        }
         largefont->FaceSize(30);
         normalfont->FaceSize(14);
-        rotfont->FaceSize(14);
+        //rotfont->FaceSize(20);
         bigfont=new wxFont(32,wxFONTFAMILY_ROMAN,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL);
         boldfont=new wxFont(12,wxFONTFAMILY_ROMAN,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD);
         smallfont=new wxFont(10,wxFONTFAMILY_ROMAN,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL);
@@ -105,7 +107,7 @@ void GraphDone()
         delete smallfont;
         delete boldfont;
         delete bigfont;
-        delete rotfont;
+        delete texfont;
         delete normalfont;
         gfont_init=false;
     }
@@ -145,24 +147,26 @@ void DrawText(wxString text, float x, float y, float angle=0, const wxColor & co
 
     //glPushAttrib(GL_LIST_BIT|GL_CURRENT_BIT|GL_ENABLE_BIT|GL_TRANSFORM_BIT);
 
-    glPushMatrix();
 	//glEnable(GL_BLEND);
 //  glPixelTransferf(GL_RED_BIAS, -1.0f);
     //glPixelTransferf(GL_GREEN_BIAS, -1.0f);
     //glPixelTransferf(GL_BLUE_BIAS, -1.0f);
 
     //glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+   //  glPushAttrib( GL_ENABLE_BIT | GL_HINT_BIT | GL_LINE_BIT | GL_PIXEL_MODE_BIT);
+
+//    glEnable(GL_BLEND);
+ //   glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GL_ONE
+
     glColor4ub(color.Red(),color.Green(),color.Blue(),color.Alpha());
 
-    glDisable(GL_BLEND);
-    glDisable(GL_LIGHTING);
-    glDisable(GL_DEPTH_TEST);
-	//glDisable(GL_TEXTURE_2D);
+    glPushMatrix();
+	//glEnable(GL_TEXTURE_2D);
     //glBlendFunc(GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ZERO);
   //  glBlendFunc(GL_ONE, GL_ZERO);
     //glLoadIdentity();
     glTranslatef(x,y,0);
-    glRotatef(90.0, 0.0f, 0.0f, 1.0f);
+    glRotatef(angle, 0.0f, 0.0f, 1.0f);
     font->Render(text.mb_str(),-1,FTPoint(-w/2.0,-h/2.0));
     glTranslatef(-x,-y,0);
 	//glDisable(GL_BLEND);
@@ -282,8 +286,10 @@ gGraphWindow::gGraphWindow()
 {
 }
 
+wxGLContext *shared_context=NULL;
+
 gGraphWindow::gGraphWindow(wxWindow *parent, wxWindowID id,const wxString & title,const wxPoint &pos,const wxSize &size,long flags)
-: wxGLCanvas( parent, (wxGLContext *)NULL, id, pos, size, flags, title, (int *)wx_gl_attribs, wxNullPalette )
+: wxGLCanvas( parent, shared_context, id, pos, size, flags, title, (int *)wx_gl_attribs, wxNullPalette )
 {
     m_scrX   = m_scrY   = 64;
     m_title=title;
@@ -299,19 +305,21 @@ gGraphWindow::gGraphWindow(wxWindow *parent, wxWindowID id,const wxString & titl
     m_foobar_moved=0;
     gtitle=foobar=xaxis=yaxis=NULL;
 
+    if (!shared_context) {
 #if defined(__DARWIN__)
-    // Screw you apple..
-    int *attribList = (int*) NULL;
-    AGLPixelFormat aglpf=aglChoosePixelFormat(NULL,0,attribList);
-    gl_context=new wxGLContext(aglpf,this,wxNullPalette,NULL);
-    // Mmmmm.. Platform incosistency with wx..
-
+        // Screw you apple..
+        int *attribList = (int*) NULL;
+        AGLPixelFormat aglpf=aglChoosePixelFormat(NULL,0,attribList);
+        shared_context=new wxGLContext(aglpf,this,wxNullPalette,NULL);
+        // Mmmmm.. Platform incosistency with wx..
 #else
-    gl_context=new wxGLContext(this,NULL);
+        shared_context=new wxGLContext(this,NULL);
 #endif
-    GraphInit(); // Font
-//rotfont->FaceSize(14);
 
+    }
+
+    GraphInit(); // Font
+    texfont=::texfont;
     AddLayer(new gGraphTitle(title,wxVERTICAL,boldfont));
 
 }
@@ -841,9 +849,9 @@ void gGraphWindow::OnPaint(wxPaintEvent& event)
     GetClientSize(&m_scrX, &m_scrY);
 
 #if !defined(__DARWIN__)
-    gl_context->SetCurrent(*this);   // A generic Context needs to be used.. Not one per graph window
+    shared_context->SetCurrent(*this);   // A generic Context needs to be used.. Not one per graph window
 #else
-    gl_context->SetCurrent();
+    shared_context->SetCurrent();
 #endif
 
     glViewport(0, 0, m_scrX, m_scrY);
@@ -874,7 +882,7 @@ void gGraphWindow::OnPaint(wxPaintEvent& event)
     glVertex2f(m_scrX, m_scrY);
     glEnd();
 
-    glEnable(GL_TEXTURE_2D);
+  //  glEnable(GL_TEXTURE_2D);
     //glMatrixMode(GL_PROJECTION);
     //glPopMatrix();
     //glMatrixMode(GL_MODELVIEW);
@@ -895,7 +903,7 @@ void gGraphWindow::OnPaint(wxPaintEvent& event)
             RoundedRectangle(m_mouseRBrect.x,m_mouseRBrect.y,m_mouseRBrect.width-1,m_mouseRBrect.height,5,*wxDARK_GREY);
     }
 
-    //glEnable(GL_DEPTH_TEST);
+//    glEnable(GL_DEPTH_TEST);
 
     SwapBuffers();
 
@@ -1496,10 +1504,10 @@ void gGraphTitle::Plot(wxDC & dc, gGraphWindow & w)
         GetTextExtent(m_title,width,height);
         DrawText(m_title,4,scrx-height,0);
     } else {
-        GetTextExtent(m_title,width,height,rotfont);
+        GetTextExtent(m_title,width,height,w.texfont);
         int xp=(height/2)+5;
         if (m_alignment==wxALIGN_RIGHT) xp=scrx-4-height;
-        DrawText(m_title,xp,w.GetBottomMargin()+((scry-w.GetBottomMargin())/2.0)+(height/2),90.0,*wxBLACK,rotfont);
+        DrawText(m_title,xp,w.GetBottomMargin()+((scry-w.GetBottomMargin())/2.0)+(height/2),90.0,*wxBLACK,w.texfont);
     }
 
 }
@@ -1758,7 +1766,7 @@ void gBarChart::Plot(wxDC & dc, gGraphWindow & w)
             if (m_direction==wxVERTICAL) {
                 DrawText(str,start_px-textX-8,j);
             } else {
-                DrawText(str,j,start_py-16-(textX/2),90,*wxBLACK,rotfont);
+                DrawText(str,j,start_py-16-(textX/2),90,*wxBLACK,w.texfont);
             }
         } else draw_xticks_instead=true;
 
@@ -2133,8 +2141,6 @@ void gLineOverlayBar::Plot(wxDC & dc, gGraphWindow & w)
 
     double x1,x2;
 
-    glEnable(GL_POINT_SMOOTH);
-    glEnable( GL_BLEND );
 
     wxColor & col=color[0];
     for (int n=0;n<data->VC();n++) {
@@ -2177,20 +2183,26 @@ void gLineOverlayBar::Plot(wxDC & dc, gGraphWindow & w)
                     glVertex2f(x1,start_py+height-25);
                     glEnd();
 
+                    //glEnable(GL_POINT_SMOOTH);
                     glColor4ub(col.Red(),col.Green(),col.Blue(),col.Alpha());
                     glPointSize(6);
                     glBegin(GL_POINTS);
                     glVertex2f(x1,start_py+height-25);
                     glEnd();
+                   // glDisable(GL_POINT_SMOOTH);
                 } else {
                     RoundedRectangle(x1,start_py,w1,height,2,col);
                 }
             } else if (lo_type==LOT_Dot) {
                 glColor4ub(col.Red(),col.Green(),col.Blue(),col.Alpha());
+                //glEnable(GL_POINT_SMOOTH);
+                //glEnable(GL_BLEND);
                 glPointSize(4);
                 glBegin(GL_POINTS);
                 glVertex2f(x1,start_py+(height/2)+14);
                 glEnd();
+                //glDisable(GL_POINT_SMOOTH);
+                //glDisable(GL_BLEND);
             }
 
 
@@ -2200,6 +2212,7 @@ void gLineOverlayBar::Plot(wxDC & dc, gGraphWindow & w)
 
         if (done) break;
     }
+
 }
 
 gFlagsLine::gFlagsLine(gPointData *d,const wxColor * col,wxString _label,int _line_num,int _total_lines)
@@ -2236,8 +2249,8 @@ void gFlagsLine::Plot(wxDC & dc, gGraphWindow & w)
 //    static wxColor col2=wxColor(0xe0,0xe0,0xff,0xff);
     static wxColor col2=wxColor(0xff,0xff,0xff,0xff);
 
-    dc.SetFont(*smallfont);
-    dc.SetTextForeground(*wxBLACK);
+    //dc.SetFont(*smallfont);
+    //dc.SetTextForeground(*wxBLACK);
 
 
     float line_h=float(height-2)/float(total_lines);
diff --git a/src/graphs/graph.h b/src/graphs/graph.h
index 6c7affe8..5186f291 100644
--- a/src/graphs/graph.h
+++ b/src/graphs/graph.h
@@ -9,6 +9,8 @@ License: LGPL
 
 #include <wx/dcgraph.h>
 #include <wx/glcanvas.h>
+#include <FTGL/ftgl.h>
+
 #include <sleeplib/machine.h>
 #include <list>
 
@@ -119,6 +121,7 @@ public:
 };
 
 
+extern wxGLContext *shared_context;
 
 class gGraphWindow:public wxGLCanvas //Window // rename to gGraphWindow
 {
@@ -225,7 +228,7 @@ class gGraphWindow:public wxGLCanvas //Window // rename to gGraphWindow
         void SetBlockMove(bool b) { m_block_move=b; };
 
         wxGLContext *gl_context;
-
+        FTFont *texfont;
 
     protected:
         list<gGraphWindow *>link_zoom;
diff --git a/src/version.h b/src/version.h
index b2b04153..0fda5997 100644
--- a/src/version.h
+++ b/src/version.h
@@ -16,14 +16,14 @@ namespace AutoVersion{
 	//Standard Version Type
 	static const long MAJOR = 0;
 	static const long MINOR = 7;
-	static const long BUILD = 5075;
-	static const long REVISION = 11002;
+	static const long BUILD = 5135;
+	static const long REVISION = 11367;
 	
 	//Miscellaneous Version Types
-	static const long BUILDS_COUNT = 4576;
-	#define RC_FILEVERSION 0,7,5075,11002
-	#define RC_FILEVERSION_STRING "0, 7, 5075, 11002\0"
-	static const char FULLVERSION_STRING[] = "0.7.5075.11002";
+	static const long BUILDS_COUNT = 4705;
+	#define RC_FILEVERSION 0,7,5135,11367
+	#define RC_FILEVERSION_STRING "0, 7, 5135, 11367\0"
+	static const char FULLVERSION_STRING[] = "0.7.5135.11367";
 	
 	//These values are to keep track of your versioning state, don't modify them.
 	static const long BUILD_HISTORY = 0;