Index: trunk/OpenYahtzee/macros/autogen.sh
===================================================================
--- trunk/OpenYahtzee/macros/autogen.sh	(revision 75)
+++ trunk/OpenYahtzee/macros/autogen.sh	(revision 76)
@@ -1,4 +1,5 @@
 #!/bin/sh
 aclocal
+autoheader
 libtoolize --automake --force --copy
 automake -a -c
Index: trunk/OpenYahtzee/src/About.cpp
===================================================================
--- trunk/OpenYahtzee/src/About.cpp	(revision 75)
+++ trunk/OpenYahtzee/src/About.cpp	(revision 76)
@@ -53,5 +53,5 @@
 	label_1 = new wxStaticText(notebook_main_pane_about, -1, wxT("http://openyahtzee.sourceforge.net/"));
 	label_7 = new wxStaticText(notebook_main_pane_authors, -1, wxT("Please report bugs to openyahtzee-users@lists.sourceforge.net.\n\nGuy Rutenberg\n\tguyrutenberg@gmail.com\n\tAuthor, maintainer"));
-	label_6 = new wxStaticText(notebook_main_pane_thanks, -1, wxT("Seamous McGill\n\tjohndoe@gmail.com\n\tLogo and dice design\n\nNeil Gierman\n\tNeil Gierman\n\tRPM packages\n\nJohn Doe3\n    email@john.com\n    Windows Installer"));
+	label_6 = new wxStaticText(notebook_main_pane_thanks, -1, wxT("Seamous McGill\n\tjohndoe@gmail.com\n\tLogo and dice design\n\nNeil Gierman\n\tngierman@roadrunn.com\n\tRPM packages"));
     label_15 = new wxStaticText(notebook_main_pane_license, -1, wxT("This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by \nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of \nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details. \n\nYou should have received a copy of the GNU General Public License \nalong with this program; if not, write to the\nFree Software Foundation, Inc.,\n59 Temple Place - Suite 330, Boston, MA  02111-1307, USA."));
     close_button = new wxButton(this, wxID_OK, wxT("Close"));
Index: trunk/OpenYahtzee/src/MainFrame.cpp
===================================================================
--- trunk/OpenYahtzee/src/MainFrame.cpp	(revision 75)
+++ trunk/OpenYahtzee/src/MainFrame.cpp	(revision 76)
@@ -67,34 +67,6 @@
 	m_settingsdb = new SettingsDB(); //Get the settings database connection
 	m_highscoredb = new HighScoreTableDB();
-
-	//DATABASE initialization
-	if (m_settingsdb->GetKey("highscoresize") == "") { //check if we need to create a new high score table
-		m_highscoredb->SetSize(DEF_HIGHSCORESIZE);
-		sstr<<DEF_HIGHSCORESIZE<<std::flush;
-		m_settingsdb->SetKey("highscoresize", sstr.str());
-	} else {
-		int highscoresize = atoi((m_settingsdb->GetKey("highscoresize")).c_str());
-		//m_highscoredb->SetSize((highscoresize>0)?highscoresize:DEF_HIGHSCORESIZE);
-		m_highscoredb->SetSize(highscoresize);
-	}
-	
-	if (m_settingsdb->GetKey("animate") == "Yes") {
-		m_animate = true;
-	} else if (m_settingsdb->GetKey("animate") == "No") {
-		m_animate = false;
-	} else {
-		m_settingsdb->SetKey("animate", "Yes");
-		m_animate = true;
-	}
-	if (m_settingsdb->GetKey("calculatesubtotal") == "Yes") {
-		m_calculatesubtotal = true;
-	} else if (m_settingsdb->GetKey("calculatesubtotal") == "No") {
-		m_calculatesubtotal = false;
-	} else {
-		m_settingsdb->SetKey("calculatesubtotal", "Yes");
-		m_calculatesubtotal = true;
-	}
-
-	// END Database initialization
+	
+	InitializeDatabase();//this must come _after_ m_settingsdb and m_highscoredb are created
 
 	bitmap_dices[0] = new wxBitmap(one_xpm);
@@ -1023,2 +995,51 @@
 	}
 }
+
+/**
+ * Initializes the database and stores default settings if needed.
+ * @return 0 if some error
+ */
+int MainFrame::InitializeDatabase()
+{
+	std::ostringstream sstr;
+
+
+	if (m_settingsdb->GetKey("highscoresize") == "") { //check if we need to create a new high score table
+		m_highscoredb->SetSize(DEF_HIGHSCORESIZE);
+		sstr<<DEF_HIGHSCORESIZE<<std::flush;
+		m_settingsdb->SetKey("highscoresize", sstr.str());
+	} else {
+		int highscoresize = atoi((m_settingsdb->GetKey("highscoresize")).c_str());
+		//m_highscoredb->SetSize((highscoresize>0)?highscoresize:DEF_HIGHSCORESIZE);
+		m_highscoredb->SetSize(highscoresize);
+	}
+	
+	if (m_settingsdb->GetKey("animate") == "Yes") {
+		m_animate = true;
+	} else if (m_settingsdb->GetKey("animate") == "No") {
+		m_animate = false;
+	} else {
+		m_settingsdb->SetKey("animate", "Yes");
+		m_animate = true;
+	}
+	if (m_settingsdb->GetKey("calculatesubtotal") == "Yes") {
+		m_calculatesubtotal = true;
+	} else if (m_settingsdb->GetKey("calculatesubtotal") == "No") {
+		m_calculatesubtotal = false;
+	} else {
+		m_settingsdb->SetKey("calculatesubtotal", "Yes");
+		m_calculatesubtotal = true;
+	}
+	
+	if (m_settingsdb->GetKey("openyahtzeehomepage") == "") {
+		m_settingsdb->SetKey("openyahtzeehomepage", "http://openyahtzee.sourceforge.net/");
+	}
+
+	if (m_settingsdb->GetKey("updateurl") == "") {
+		/*the version string will be appended in the end of the
+		  given url */
+		m_settingsdb->SetKey("updateurl", "http://openyahtzee.sourceforge.net/update.php?version=");
+	}
+	
+	return 1;
+}
Index: trunk/OpenYahtzee/src/MainFrame.h
===================================================================
--- trunk/OpenYahtzee/src/MainFrame.h	(revision 75)
+++ trunk/OpenYahtzee/src/MainFrame.h	(revision 76)
@@ -76,4 +76,5 @@
 	void CalculateSubTotal();
 	void LaunchBrowser (wxString link);
+	int InitializeDatabase();
 
 	//pointers to hold bitmap data for the dices
