diff --git a/src/gcs-conf.cc b/src/gcs-conf.cc
index 5e5673f..2f20cac 100644
--- a/src/gcs-conf.cc
+++ b/src/gcs-conf.cc
@@ -22,6 +22,7 @@
  *
  *******************************************************************************/

+#include <glib/gstdio.h>
 #include "config.h"
 #include "gcs-conf.h"
 #include "core/gcs-color.h"
@@ -39,7 +40,9 @@ namespace gcs
     const Glib::ustring Conf::KEY_WINDOW_WIDTH = Conf::APP_DIR + "/window_width";
     const Glib::ustring Conf::KEY_WINDOW_HEIGHT = Conf::APP_DIR + "/window_height";

-    const Glib::ustring Conf::GCS_CONF_DIR = "agave";
+    const Glib::ustring Conf::OLD_GCS_CONF_DIR = Glib::build_filename(Glib::get_home_dir(), ".agave");
+    // FIXME: look into getting g_get_user_data_dir() wrapped into glibmm
+    const Glib::ustring Conf::GCS_CONF_DIR = Glib::build_filename(g_get_user_data_dir(), "agave");
     const Glib::ustring Conf::FAVORITES_FILE = Conf::GCS_CONF_DIR + "/bookmarks.gpl";
     const Glib::ustring Conf::USER_PALETTE_DIR = Conf::GCS_CONF_DIR + "/palettes";

@@ -48,6 +51,18 @@ namespace gcs
     const int Conf::UI_SPACING_MEDIUM = 12;
     const int Conf::UI_SPACING_LARGE = 18;

+    void Conf::migrate_old_config_directory()
+    {
+        // check for an old config directory, and if it exists, rename it to the
+        // new directory
+        if (g_access(OLD_GCS_CONF_DIR.c_str(), F_OK) == 0 &&
+                g_access(GCS_CONF_DIR.c_str(), F_OK) != 0)    // 0 indicates existence
+        {
+            g_rename(OLD_GCS_CONF_DIR.c_str(), GCS_CONF_DIR.c_str());
+        }
+    }
+
+
     Glib::ustring Conf::get_last_save_dir(void)
     {
         std::string dir;
diff --git a/src/gcs-conf.h b/src/gcs-conf.h
index fe5b01e..e313426 100644
--- a/src/gcs-conf.h
+++ b/src/gcs-conf.h
@@ -57,6 +57,7 @@ namespace gcs
             static const Glib::ustring KEY_WINDOW_HEIGHT;
             static const Glib::ustring FAVORITES_FILE;
             static const Glib::ustring GCS_CONF_DIR;
+            static const Glib::ustring OLD_GCS_CONF_DIR;
             static const Glib::ustring USER_PALETTE_DIR;

             // window / ui settings
@@ -64,6 +65,8 @@ namespace gcs
             static const int UI_SPACING_SMALL;
             static const int UI_SPACING_MEDIUM;
             static const int UI_SPACING_LARGE;
+
+            static void migrate_old_config_directory();
     };
 } // namespace gcs

diff --git a/src/gcs-mainwindow.cc b/src/gcs-mainwindow.cc
index aa97645..19ec6a2 100644
--- a/src/gcs-mainwindow.cc
+++ b/src/gcs-mainwindow.cc
@@ -87,13 +87,15 @@ namespace gcs
         m_pControls(Gtk::manage(new Gtk::HBox())),
         m_pSchemeBox(Gtk::manage(new Widgets::SchemeBox())),
         m_PaletteView(Gtk::manage(new Widgets::PaletteView(
-                        Glib::build_filename(AGAVE_PALETTEDIR,"Web.gpl")))),
+                        Glib::build_filename(AGAVE_PALETTEDIR, "Web.gpl")))),
         m_pStatusbar(Gtk::manage(new Gtk::Statusbar())),
         m_pHistory(new HistoryNavigation<tHexString>()),
         m_pMainMenu(0),  // will be assigned in the constructor
-        // FIXME: look into getting g_get_user_data_dir() wrapped into glibmm
-        m_bookmarks_file(Glib::build_filename(Glib::ustring(g_get_user_data_dir()),Conf::FAVORITES_FILE))
+        m_bookmarks_file(Conf::FAVORITES_FILE)
     {
+        // migrate the old settings if it hasn't been done yet
+        Conf::migrate_old_config_directory();
+
         m_pBookmarkList = Gtk::manage(new Widgets::BookmarkList(m_bookmarks_file));
         init_actions();
         init_ui();
diff --git a/src/gcs-mainwindow.h b/src/gcs-mainwindow.h
index 228e146..c1fac8e 100644
--- a/src/gcs-mainwindow.h
+++ b/src/gcs-mainwindow.h
@@ -173,8 +173,6 @@ namespace gcs
             static const gint WINDOW_HEIGHT;
             static const gint WINDOW_WIDTH;
             static const gint FAVORITES_WIDTH;
-            static const Glib::ustring GCS_CONF_DIR;
-            static const Glib::ustring FAVORITES_FILE;

             friend void clipboard_owner_changed(GtkClipboard* clipboard, GdkEvent* event,
 gpointer data);
     };

