[glom] Remove ifdefs for the gtkmm reduced-api build.



commit 454850cb5d4f107155582629ac024d3aa0fc76f0
Author: Murray Cumming <murrayc murrayc com>
Date:   Sun Jun 20 20:11:45 2010 +0200

    Remove ifdefs for the gtkmm reduced-api build.

 glom/application.cc                                |   49 -----
 glom/bakery/app_withdoc.cc                         |    4 -
 glom/bakery/app_withdoc_gtk.cc                     |   35 ----
 glom/base_db.cc                                    |   85 +--------
 glom/base_db.h                                     |    4 -
 glom/base_db_table_data.cc                         |   16 --
 glom/dialog_connection.cc                          |    8 -
 glom/dialog_connection.h                           |    4 -
 glom/dialog_existing_or_new.cc                     |  118 +-----------
 glom/frame_glom.cc                                 |   31 ---
 glom/glade_utils.h                                 |   18 --
 glom/import_csv/csv_parser.cc                      |   41 ----
 glom/import_csv/dialog_import_csv.cc               |   17 --
 glom/import_csv/dialog_import_csv_progress.cc      |    9 -
 .../connectionpool_backends/postgres_self.cc       |   39 +----
 glom/libglom/data_structure/field.cc               |   12 --
 glom/libglom/data_structure/fieldtypes.cc          |   17 --
 glom/libglom/data_structure/glomconversions.cc     |   16 --
 glom/libglom/db_utils.cc                           |  201 --------------------
 glom/libglom/document/bakery/document.cc           |   43 ----
 glom/libglom/example_document_load.cc              |    5 -
 glom/libglom/privs.cc                              |   30 ---
 glom/libglom/python_embed/py_glom_relatedrecord.cc |   12 --
 glom/libglom/spawn_with_feedback.cc                |   42 ----
 glom/libglom/test_connectionpool.cc                |    5 -
 glom/libglom/utils.cc                              |   23 ---
 glom/main.cc                                       |   41 +----
 glom/mode_data/box_data.cc                         |   10 -
 glom/mode_data/box_data_calendar_related.cc        |   23 ---
 glom/mode_data/box_data_details.cc                 |   32 ---
 glom/mode_data/box_data_list.cc                    |   10 -
 glom/mode_data/box_data_portal.cc                  |   10 -
 glom/mode_data/datawidget/combo.cc                 |   16 --
 glom/mode_data/datawidget/comboentry.cc            |   14 --
 glom/mode_data/datawidget/entry.cc                 |   15 --
 glom/mode_data/datawidget/entry.h                  |    2 -
 glom/mode_data/datawidget/textview.cc              |    6 -
 glom/mode_data/flowtablewithfields.cc              |    7 -
 glom/mode_data/notebook_data.cc                    |    6 -
 glom/mode_data/placeholder-glom.cc                 |   11 -
 glom/mode_design/iso_codes.cc                      |   15 --
 .../print_layouts/window_print_layout_edit.cc      |   11 -
 .../dialog_relationships_overview.cc               |   22 --
 glom/navigation/box_tables.cc                      |    6 -
 glom/notebook_glom.cc                              |    8 -
 glom/print_layout/canvas_layout_item.cc            |   43 ----
 glom/print_layout/canvas_print_layout.cc           |   66 -------
 glom/printoperation_printlayout.cc                 |   15 --
 glom/report_builder.cc                             |   19 --
 glom/utility_widgets/adddel/adddel.cc              |   11 -
 glom/utility_widgets/canvas/canvas_group_grid.cc   |   18 --
 .../canvas/canvas_group_resizable.cc               |   82 --------
 .../utility_widgets/canvas/canvas_image_movable.cc |   36 ----
 glom/utility_widgets/canvas/canvas_line_movable.cc |   20 --
 glom/utility_widgets/canvas/canvas_rect_movable.cc |   36 ----
 .../utility_widgets/canvas/canvas_table_movable.cc |   20 --
 glom/utility_widgets/canvas/canvas_text_movable.cc |   40 ----
 .../utility_widgets/canvas/test_canvas_editable.cc |   11 -
 glom/utility_widgets/db_adddel/db_adddel.cc        |   41 +----
 .../utility_widgets/db_adddel/glom_db_treemodel.cc |   16 --
 glom/utility_widgets/dialog_image_progress.cc      |   67 -------
 glom/utility_widgets/flowtable.cc                  |  173 -----------------
 glom/utility_widgets/flowtable.h                   |   12 --
 glom/utility_widgets/imageglom.cc                  |   39 +----
 glom/utils_ui.cc                                   |   24 +--
 glom/xsl_utils.cc                                  |   22 +--
 tests/import/test_parsing.cc                       |   10 -
 tests/import/test_signals.cc                       |    7 -
 tests/import/utils.cc                              |   14 --
 tests/test_document_load.cc                        |    5 -
 tests/test_selfhosting_new_from_example.cc         |    5 -
 71 files changed, 22 insertions(+), 1979 deletions(-)
---
diff --git a/glom/application.cc b/glom/application.cc
index f66de88..a48929f 100644
--- a/glom/application.cc
+++ b/glom/application.cc
@@ -846,7 +846,6 @@ static bool uri_is_writable(const Glib::RefPtr<const Gio::File>& uri)
 
   Glib::RefPtr<const Gio::FileInfo> file_info;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     file_info = uri->query_info(G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE);
@@ -855,12 +854,6 @@ static bool uri_is_writable(const Glib::RefPtr<const Gio::File>& uri)
   {
     return false;
   }
-#else
-  std::auto_ptr<Gio::Error> error;
-  file_info = uri->query_info(G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, Gio::FILE_QUERY_INFO_NONE, error);
-  if(error.get())
-    return false;
-#endif
 
   if(file_info)
   {
@@ -1739,26 +1732,12 @@ void Application::fill_menu_tables()
     "</ui>";
 
   //Add menus:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#else
-  std::auto_ptr<Glib::Error> error;
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_menu_tables_ui_merge_id = m_refUIManager->add_ui_from_string(ui_description);
-#else
-    m_menu_tables_ui_merge_id = m_refUIManager->add_ui_from_string(ui_description, error);
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Glib::Error& ex)
   {
-#else
-  if(error.get())
-  {
-    const Glib::Error& ex = *error.get();
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     std::cerr << " Application::fill_menu_tables(): building menus failed: " <<  ex.what() << std::endl;
     std::cerr << "   The ui_description was: " <<  ui_description << std::endl;
   }
@@ -1838,26 +1817,12 @@ void Application::fill_menu_reports(const Glib::ustring& table_name)
     "</ui>";
 
   //Add menus:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#else
-  std::auto_ptr<Glib::Error> error;
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_menu_reports_ui_merge_id = m_refUIManager->add_ui_from_string(ui_description);
-#else
-    m_menu_reports_ui_merge_id = m_refUIManager->add_ui_from_string(ui_description, error);
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Glib::Error& ex)
   {
-#else
-  if(error.get())
-  {
-    const Glib::Error& ex = *error.get();
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     std::cerr << " Application::fill_menu_reports(): building menus failed: " <<  ex.what();
   }
 }
@@ -1950,26 +1915,12 @@ void Application::fill_menu_print_layouts(const Glib::ustring& table_name)
     "</ui>";
 
   //Add menus:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#else
-  std::auto_ptr<Glib::Error> error;
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_menu_print_layouts_ui_merge_id = m_refUIManager->add_ui_from_string(ui_description);
-#else
-    m_menu_print_layouts_ui_merge_id = m_refUIManager->add_ui_from_string(ui_description, error);
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Glib::Error& ex)
   {
-#else
-  if(error.get())
-  {
-    const Glib::Error& ex = *error.get();
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     std::cerr << " Application::fill_menu_reports(): building menus failed: " <<  ex.what();
   }
 }
diff --git a/glom/bakery/app_withdoc.cc b/glom/bakery/app_withdoc.cc
index 3c34148..385df4c 100644
--- a/glom/bakery/app_withdoc.cc
+++ b/glom/bakery/app_withdoc.cc
@@ -200,7 +200,6 @@ bool App_WithDoc::file_exists(const Glib::ustring& uri)
     // Try to examine the input file.
     Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(uri);
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       return file->query_exists();
@@ -209,9 +208,6 @@ bool App_WithDoc::file_exists(const Glib::ustring& uri)
     {
       return false; //Something went wrong. It does not exist.
     }
-#else
-      return file->query_exists();
-#endif
   }
 }
 
diff --git a/glom/bakery/app_withdoc_gtk.cc b/glom/bakery/app_withdoc_gtk.cc
index f4f6b6f..e7c63e1 100644
--- a/glom/bakery/app_withdoc_gtk.cc
+++ b/glom/bakery/app_withdoc_gtk.cc
@@ -50,11 +50,6 @@ App_WithDoc_Gtk::App_WithDoc_Gtk(const Glib::ustring& appname)
   m_pAbout(0)
 {
   init_app_name(appname);
-
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_hide().connect(sigc::mem_fun(*this, &App_WithDoc_Gtk::on_hide));
-  signal_delete_event().connect(sigc::mem_fun(*this, &App_WithDoc_Gtk::on_delete_event));
-#endif
 }
 
 /// This constructor can be used with Gtk::Builder::get_derived_widget().
@@ -70,11 +65,6 @@ App_WithDoc_Gtk::App_WithDoc_Gtk(BaseObjectType* cobject, const Glib::ustring& a
   //The .glade file needs to specify HildonWindow or features such as HildonAppMenu won't work.
   g_assert(HILDON_IS_WINDOW(gobj()));
   #endif //GLOM_ENABLE_MAEMO
-
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_hide().connect(sigc::mem_fun(*this, &App_WithDoc_Gtk::on_hide));
-  signal_delete_event().connect(sigc::mem_fun(*this, &App_WithDoc_Gtk::on_delete_event));
-#endif
 }
 
   
@@ -146,7 +136,6 @@ void App_WithDoc_Gtk::init_layout()
 
 void App_WithDoc_Gtk::add_ui_from_string(const Glib::ustring& ui_description)
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     m_refUIManager->add_ui_from_string(ui_description);
@@ -155,11 +144,6 @@ void App_WithDoc_Gtk::add_ui_from_string(const Glib::ustring& ui_description)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  m_refUIManager->add_ui_from_string(ui_description, error);
-  if(error.get()) std::cerr << "building menus failed: " << error->what();
-#endif
 }
 
 void App_WithDoc_Gtk::init()
@@ -554,7 +538,6 @@ static bool uri_is_writable(const Glib::RefPtr<const Gio::File>& uri)
 
   Glib::RefPtr<const Gio::FileInfo> file_info;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     file_info = uri->query_info(G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE);
@@ -563,12 +546,6 @@ static bool uri_is_writable(const Glib::RefPtr<const Gio::File>& uri)
   {
     return false;
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  file_info = uri->query_info(G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, Gio::FILE_QUERY_INFO_NONE, error);
-  if(error.get())
-    return false;
-#endif
 
   if(file_info)
   {
@@ -721,13 +698,7 @@ void App_WithDoc_Gtk::document_history_add(const Glib::ustring& file_uri)
     //Glib::ustring filename_e = Gnome::Vfs::escape_path_string(file_uri);
     const Glib::ustring uri = file_uri; // "file://" + filename_e;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     Gtk::RecentManager::get_default()->add_item(uri);
-#else
-    std::auto_ptr<Glib::Error> error;
-    Gtk::RecentManager::get_default()->add_item(uri, error);
-    // Ignore error
-#endif
   }
 }
 
@@ -738,13 +709,7 @@ void App_WithDoc_Gtk::document_history_remove(const Glib::ustring& file_uri)
     //Glib::ustring filename_e = Gnome::Vfs::escape_path_string(file_uri.c_str());
     const Glib::ustring uri = file_uri; //"file://" + filename_e;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     Gtk::RecentManager::get_default()->remove_item(uri);
-#else
-    std::auto_ptr<Glib::Error> error;
-    Gtk::RecentManager::get_default()->remove_item(uri, error);
-    // Ignore error
-#endif
   }
 }
 
diff --git a/glom/base_db.cc b/glom/base_db.cc
index 8990d38..3ad66e0 100644
--- a/glom/base_db.cc
+++ b/glom/base_db.cc
@@ -118,19 +118,11 @@ bool Base_DB::fill_from_database()
 }
 
 //static:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
 sharedptr<SharedConnection> Base_DB::connect_to_server(Gtk::Window* parent_window)
-#else
-sharedptr<SharedConnection> Base_DB::connect_to_server(Gtk::Window* parent_window, std::auto_ptr<ExceptionConnection>& error)
-#endif
 {
   BusyCursor busy_cursor(parent_window);
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   return ConnectionPool::get_and_connect();
-#else
-  return ConnectionPool::get_and_connect(error);
-#endif
 }
 
 void Base_DB::handle_error(const Glib::Exception& ex)
@@ -154,6 +146,7 @@ void Base_DB::handle_error(const std::exception& ex)
   dialog.set_secondary_text(ex.what());
   //TODO: dialog.set_transient_for(*get_application());
 #endif
+
   dialog.run();
 }
 
@@ -347,20 +340,12 @@ sharedptr<Field> Base_DB::change_column(const Glib::ustring& table_name, const s
   ConnectionPool* connection_pool = ConnectionPool::get_instance();
   sharedptr<Field> result = check_field_change_constraints(field_old, field);
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     connection_pool->change_column(table_name, field_old, result);
   }
   catch(const Glib::Error& ex)
   {
-#else
-  std::auto_ptr<Glib::Error> error;
-  connection_pool->change_column(table_name, field_old, result, error);
-  if(error.get())
-  {
-    const Glib::Error& ex = *error;
-#endif
     handle_error(ex);
 //    Gtk::MessageDialog window(*parent_window, Utils::bold_message(ex.what()), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
 //    window.run();
@@ -383,20 +368,12 @@ bool Base_DB::change_columns(const Glib::ustring& table_name, const type_vec_con
 
   ConnectionPool* connection_pool = ConnectionPool::get_instance();
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     connection_pool->change_columns(table_name, old_fields, pass_fields);
   }
   catch(const Glib::Error& ex)
   {
-#else
-  std::auto_ptr<Glib::Error> error;
-  connection_pool->change_columns(table_name, old_fields, pass_fields, error);
-  if(error.get())
-  {
-    const Glib::Error& ex = *error;
-#endif
     handle_error(ex);
 //    Gtk::MessageDialog window(*parent_window, Utils::bold_message(ex.what()), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
 //    window.run();
@@ -410,7 +387,6 @@ bool Base_DB::change_columns(const Glib::ustring& table_name, const type_vec_con
 
 Glib::RefPtr<Gnome::Gda::Connection> Base_DB::get_connection()
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> sharedconnection;
   try
   {
@@ -420,15 +396,6 @@ Glib::RefPtr<Gnome::Gda::Connection> Base_DB::get_connection()
   {
     std::cerr << "Base_DB::get_connection(): " << error.what() << std::endl;
   }
-#else
-  std::auto_ptr<ExceptionConnection> error;
-  sharedptr<SharedConnection> sharedconnection = connect_to_server(0, error);
-  if(error.get())
-  {
-    std::cerr << "Base_DB::get_connection(): " << error->what() << std::endl;
-    // TODO: Rethrow?
-  }
-#endif
 
   if(!sharedconnection)
   {
@@ -936,12 +903,7 @@ void Base_DB::calculate_field_in_all_records(const Glib::ustring& table_name, co
   const int rows_count = data_model->get_n_rows();
   for(int row = 0; row < rows_count; ++row)
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     const Gnome::Gda::Value primary_key_value = data_model->get_value_at(0, row);
-#else
-    std::auto_ptr<Glib::Error> error;
-    const Gnome::Gda::Value primary_key_value = data_model->get_value_at(0, row, error);
-#endif
 
     if(!Conversions::value_is_empty(primary_key_value))
     {
@@ -1046,13 +1008,7 @@ void Base_DB::calculate_field(const LayoutFieldInRecord& field_in_record)
         if(field)
         {
           //We need the connection when we run the script, so that the script may use it.
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
           sharedptr<SharedConnection> sharedconnection = connect_to_server(0 /* parent window */);
-#else
-          std::auto_ptr<ExceptionConnection> error;
-          sharedptr<SharedConnection> sharedconnection = connect_to_server(0 /* parent window */, error);
-          // TODO: Rethrow?
-#endif
 
           g_assert(sharedconnection);
 
@@ -1120,7 +1076,6 @@ Base_DB::type_map_fields Base_DB::get_record_field_values_for_calculation(const
       Glib::RefPtr<Gnome::Gda::SqlBuilder> query = Utils::build_sql_select_with_key(table_name, fieldsToGet, primary_key, primary_key_value);
 
       Glib::RefPtr<const Gnome::Gda::DataModel> data_model;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       try
       {
         data_model = DbUtils::query_execute_select(query);
@@ -1131,16 +1086,6 @@ Base_DB::type_map_fields Base_DB::get_record_field_values_for_calculation(const
         handle_error(ex);
         return field_values;
       }
-#else
-      //TODO: Seems there is no error handling in DbUtils::query_execute_select() without exceptions
-      std::auto_ptr<Glib::Error> error;
-      data_model = DbUtils::query_execute_select(query);
-      if (error.get())
-      {
-        std::cerr << "Base_DB::get_record_field_values_for_calculation(): Exception while executing SQL: " << query << std::endl;
-        return field_values;
-      }
-#endif
       if(data_model && data_model->get_n_rows())
       {
         int col_index = 0;
@@ -1148,11 +1093,7 @@ Base_DB::type_map_fields Base_DB::get_record_field_values_for_calculation(const
         {
           //There should be only 1 row. Well, there could be more but we will ignore them.
           sharedptr<const Field> field = *iter;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
           Gnome::Gda::Value value = data_model->get_value_at(col_index, 0);
-#else
-          Gnome::Gda::Value value = data_model->get_value_at(col_index, 0, error);
-#endif
           //Never give a NULL-type value to the python calculation for types that don't use them:
           //to prevent errors:
           if(value.is_null())
@@ -1231,9 +1172,7 @@ bool Base_DB::set_field_value_in_database(const LayoutFieldInRecord& layoutfield
         builder->add_field_id(field_in_record.m_key->get_name(), field_in_record.m_table_name),
         builder->add_expr_as_value(field_in_record.m_key_value)));
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try //TODO: The exceptions are probably already handled by query_execute(
-#endif
     {
       const bool test = DbUtils::query_execute(builder); //TODO: Respond to failure.
       if(!test)
@@ -1242,7 +1181,6 @@ bool Base_DB::set_field_value_in_database(const LayoutFieldInRecord& layoutfield
         return false; //failed.
       }
     }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     catch(const Glib::Exception& ex)
     {
       handle_error(ex);
@@ -1253,7 +1191,6 @@ bool Base_DB::set_field_value_in_database(const LayoutFieldInRecord& layoutfield
       handle_error(ex);
       return false;
     }
-#endif
 
     //Get-and-set values for lookup fields, if this field triggers those relationships:
     do_lookups(layoutfield_in_record, row, field_value);
@@ -1303,12 +1240,7 @@ Gnome::Gda::Value Base_DB::get_field_value_in_database(const LayoutFieldInRecord
   {
     if(data_model->get_n_rows())
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       result = data_model->get_value_at(0, 0);
-#else
-      std::auto_ptr<Glib::Error> value_error;
-      result = data_model->get_value_at(0, 0, value_error);
-#endif
     }
   }
   else
@@ -1351,12 +1283,7 @@ Gnome::Gda::Value Base_DB::get_field_value_in_database(const sharedptr<Field>& f
   {
     if(data_model->get_n_rows())
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       result = data_model->get_value_at(0, 0);
-#else
-      std::auto_ptr<Glib::Error> value_error;
-      result = data_model->get_value_at(0, 0, value_error);
-#endif
     }
   }
   else
@@ -1627,12 +1554,7 @@ Gnome::Gda::Value Base_DB::get_lookup_value(const Glib::ustring& /* table_name *
     if(data_model && data_model->get_n_rows())
     {
       //There should be only 1 row. Well, there could be more but we will ignore them.
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       result = data_model->get_value_at(0, 0);
-#else
-      std::auto_ptr<Glib::Error> error;
-      result = data_model->get_value_at(0, 0, error);
-#endif
     }
     else
     {
@@ -1912,12 +1834,7 @@ int Base_DB::count_rows_returned_by(const Glib::RefPtr<Gnome::Gda::SqlBuilder>&
     Glib::RefPtr<Gnome::Gda::DataModel> datamodel = DbUtils::query_execute_select(builder);
     if(datamodel && datamodel->get_n_rows() && datamodel->get_n_columns())
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       Gnome::Gda::Value value = datamodel->get_value_at(0, 0);
-#else
-      std::auto_ptr<Glib::Error> value_error;
-      Gnome::Gda::Value value = datamodel->get_value_at(0, 0, value_error);
-#endif
       //This showed me that this contains a gint64: std::cerr << "DEBUG: value type=" << G_VALUE_TYPE_NAME(value.gobj()) << std::endl;
       //For sqlite, this is an integer
       if(value.get_value_type() == G_TYPE_INT64)
diff --git a/glom/base_db.h b/glom/base_db.h
index 7bc2c04..0131c4f 100644
--- a/glom/base_db.h
+++ b/glom/base_db.h
@@ -65,11 +65,7 @@ public:
   virtual AppState::userlevels get_userlevel() const;
   virtual void set_userlevel(AppState::userlevels value);
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   static sharedptr<SharedConnection> connect_to_server(Gtk::Window* parent_window = 0);
-#else
-  static sharedptr<SharedConnection> connect_to_server(Gtk::Window* parent_window, std::auto_ptr<ExceptionConnection>& error);
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 
   virtual void set_document(Document* pDocument); //View override
   virtual void load_from_document(); //View override
diff --git a/glom/base_db_table_data.cc b/glom/base_db_table_data.cc
index 9944fa6..27e6246 100644
--- a/glom/base_db_table_data.cc
+++ b/glom/base_db_table_data.cc
@@ -117,16 +117,8 @@ bool Base_DB_Table_Data::record_new(bool use_entered_data, const Gnome::Gda::Val
           const type_map_fields field_values = get_record_field_values_for_calculation(m_table_name, fieldPrimaryKey, primary_key_value);
 
           //We need the connection when we run the script, so that the script may use it.
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
           // TODO: Is this function supposed to throw an exception?
           sharedptr<SharedConnection> sharedconnection = connect_to_server(Application::get_application());
-#else
-          std::auto_ptr<ExceptionConnection> error;
-          sharedptr<SharedConnection> sharedconnection = connect_to_server(Application::get_application(), error);
-          if(!error.get())
-          {
-            // Don't evaluate function on error
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 
             Glib::ustring error_message; //TODO: Check this.
             const Gnome::Gda::Value value =
@@ -140,9 +132,6 @@ bool Base_DB_Table_Data::record_new(bool use_entered_data, const Gnome::Gda::Val
                 sharedconnection->get_gda_connection(),
                 error_message);
             set_entered_field_data(layout_item, value);
-#ifndef GLIBMM_EXCEPTIONS_ENABLED
-          }
-#endif // !GLIBMM_EXCEPTIONS_ENABLED
         }
 
         //Use default values (These are also specified in postgres as part of the field definition,
@@ -533,12 +522,7 @@ void Base_DB_Table_Data::refresh_related_fields(const LayoutFieldInRecord& field
 
         for(guint uiCol = 0; uiCol < cols_count; ++uiCol)
         {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
           const Gnome::Gda::Value value = result->get_value_at(uiCol, 0 /* row */);
-#else
-          std::auto_ptr<Glib::Error> value_error;
-          const Gnome::Gda::Value value = result->get_value_at(uiCol, 0 /* row */, value_error);
-#endif
           sharedptr<LayoutItem_Field> layout_item = *iterFields;
           if(!layout_item)
             std::cerr << "Base_DB_Table_Data::refresh_related_fields(): The layout_item was null." << std::endl;
diff --git a/glom/dialog_connection.cc b/glom/dialog_connection.cc
index e5d7639..d43884d 100644
--- a/glom/dialog_connection.cc
+++ b/glom/dialog_connection.cc
@@ -61,11 +61,7 @@ Dialog_Connection::~Dialog_Connection()
 {
 }
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
 sharedptr<SharedConnection> Dialog_Connection::connect_to_server_with_connection_settings() const
-#else
-sharedptr<SharedConnection> Dialog_Connection::connect_to_server_with_connection_settings(std::auto_ptr<ExceptionConnection>& error) const
-#endif
 {
   //std::cout << "debug: Dialog_Connection::connect_to_server_with_connection_settings()" << std::endl;
 
@@ -101,11 +97,7 @@ sharedptr<SharedConnection> Dialog_Connection::connect_to_server_with_connection
   connection_pool->set_password(m_entry_password->get_text());
 
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   result = Base_DB::connect_to_server(const_cast<Dialog_Connection*>(this));
-#else
-  result = Base_DB::connect_to_server(const_cast<Dialog_Connection*>(this), error);
-#endif
 
 #ifdef GLOM_ENABLE_POSTGRESQL
   //Remember the port, 
diff --git a/glom/dialog_connection.h b/glom/dialog_connection.h
index 0f3e667..800862e 100644
--- a/glom/dialog_connection.h
+++ b/glom/dialog_connection.h
@@ -42,11 +42,7 @@ public:
   Dialog_Connection(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder);
   virtual ~Dialog_Connection();
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> connect_to_server_with_connection_settings() const;
-#else
-  sharedptr<SharedConnection> connect_to_server_with_connection_settings(std::auto_ptr<ExceptionConnection>& error) const;
-#endif
 
   ///Disable irrelevant fields:
   void set_connect_to_browsed();
diff --git a/glom/dialog_existing_or_new.cc b/glom/dialog_existing_or_new.cc
index ef5dd53..4d46d54 100644
--- a/glom/dialog_existing_or_new.cc
+++ b/glom/dialog_existing_or_new.cc
@@ -119,10 +119,9 @@ Dialog_ExistingOrNew::Dialog_ExistingOrNew(BaseObjectType* cobject, const Glib::
 
   builder->get_widget("existing_or_new_notebook", m_notebook);
   builder->get_widget("existing_or_new_button_select", m_select_button);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
+
   if(!m_notebook || !m_select_button)
     throw std::runtime_error("Glade file does not contain the notebook or the select button for ExistingOrNew dialog.");
-#endif
 
   m_existing_model = Gtk::TreeStore::create(m_existing_columns);
   m_existing_model->set_sort_column(m_existing_columns.m_col_time, Gtk::SORT_DESCENDING);
@@ -404,9 +403,7 @@ Glib::ustring Dialog_ExistingOrNew::get_uri() const
   }
   else
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
-    throw std::logic_error("Dialog_ExistingOrNew::get_uri: action is neither NEW_FROM_TEMPLATE nor OPEN_URI");
-#endif    
+    throw std::logic_error("Dialog_ExistingOrNew::get_uri: action is neither NEW_FROM_TEMPLATE nor OPEN_URI"); 
   }
 
   return Glib::ustring();
@@ -419,11 +416,9 @@ EpcServiceInfo* Dialog_ExistingOrNew::get_service_info() const
   Action action = get_action_impl(iter);
 
   if(action == OPEN_REMOTE)
-    return (*iter)[m_existing_columns.m_col_service_info];
-#ifdef GLIBMM_EXCEPTIONS_ENABLED    
+    return (*iter)[m_existing_columns.m_col_service_info];  
   else
     throw std::logic_error("Dialog_ExistingOrNew::get_service_info: action is not OPEN_REMOTE");
-#endif
 
   return 0;
 }
@@ -434,11 +429,9 @@ Glib::ustring Dialog_ExistingOrNew::get_service_name() const
   Action action = get_action_impl(iter);
 
   if(action == OPEN_REMOTE)
-    return (*iter)[m_existing_columns.m_col_service_name];
-#ifdef GLIBMM_EXCEPTIONS_ENABLED    
+    return (*iter)[m_existing_columns.m_col_service_name];  
   else
     throw std::logic_error("Dialog_ExistingOrNew::get_service_name: action is not OPEN_REMOTE");
-#endif
 
   return Glib::ustring();
 }
@@ -464,33 +457,14 @@ void Dialog_ExistingOrNew::existing_icon_data_func(Gtk::CellRenderer* renderer,
 {
   Gtk::CellRendererPixbuf* pixbuf_renderer = dynamic_cast<Gtk::CellRendererPixbuf*>(renderer);  
   if(!pixbuf_renderer) 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   throw std::logic_error("Renderer not a pixbuf renderer in existing_icon_data_func");
-#else
-  return;
-#endif
 
-#ifdef GLIBMM_PROPERTIES_ENABLED
   pixbuf_renderer->property_stock_size() = Gtk::ICON_SIZE_BUTTON;
   pixbuf_renderer->property_stock_id() = "";
   pixbuf_renderer->property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>();
 
   if(iter == m_iter_existing_recent)
     pixbuf_renderer->property_stock_id() = Gtk::Stock::INDEX.id; // TODO: More meaningful icon?
-#ifndef G_OS_WIN32
-  else if(iter == m_iter_existing_network)
-    pixbuf_renderer->property_stock_id() = Gtk::Stock::NETWORK.id;
-#endif
-  else if(iter == m_iter_existing_other)
-    pixbuf_renderer->property_stock_id() = Gtk::Stock::OPEN.id;
-  else if(m_iter_existing_recent_dummy.get() && iter == *m_iter_existing_recent_dummy)
-    pixbuf_renderer->property_stock_id() = ""; // TODO: Use Stock::STOP instead?
-#ifndef G_OS_WIN32
-  else if(m_iter_existing_network_dummy.get() && iter == *m_iter_existing_network_dummy)
-    pixbuf_renderer->property_stock_id() = ""; // TODO: Use Stock::STOP instead?
-#endif
-
-#else // Properties enabled
 
   pixbuf_renderer->set_property("stock-size", Gtk::ICON_SIZE_BUTTON);
   pixbuf_renderer->set_property("stock-id", std::string());
@@ -510,8 +484,6 @@ void Dialog_ExistingOrNew::existing_icon_data_func(Gtk::CellRenderer* renderer,
   else if(m_iter_existing_network_dummy.get() && iter == *m_iter_existing_network_dummy)
     pixbuf_renderer->set_property("stock-id", std::string()); // TODO: Use Stock::STOP instead?
 #endif
-
-#endif // Properties enabled
   else
   {
     if(m_existing_model->is_ancestor(m_iter_existing_recent, iter))
@@ -529,9 +501,7 @@ void Dialog_ExistingOrNew::existing_icon_data_func(Gtk::CellRenderer* renderer,
 #endif
     else
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
-      throw std::logic_error("Unexpected iterator in existing_icon_data_func");
-#endif      
+      throw std::logic_error("Unexpected iterator in existing_icon_data_func");   
     }
   }
 }
@@ -540,13 +510,8 @@ void Dialog_ExistingOrNew::existing_title_data_func(Gtk::CellRenderer* renderer,
 {
   Gtk::CellRendererText* text_renderer = dynamic_cast<Gtk::CellRendererText*>(renderer);
   if(!text_renderer)
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
- throw std::logic_error("Renderer not a text renderer in existing_title_data_func");
-#else
-  return;
-#endif    
+    throw std::logic_error("Renderer not a text renderer in existing_title_data_func");
 
-#ifdef GLIBMM_PROPERTIES_ENABLED
   text_renderer->property_text() = (*iter)[m_existing_columns.m_col_title];
 
   // Default: Use default color:
@@ -562,22 +527,6 @@ void Dialog_ExistingOrNew::existing_title_data_func(Gtk::CellRenderer* renderer,
   {
     text_renderer->property_foreground() = "grey";
   }
-#else // PROPERTIES_ENABLED
-  Glib::ustring text = (*iter)[m_existing_columns.m_col_title];
-  text_renderer->set_property("text", text);
-  // Default: Use default color
-  text_renderer->set_property("foreground-set", false);
-  // Use grey if parent item has no children
-#ifndef G_OS_WIN32
-  if( (iter == m_iter_existing_network && m_iter_existing_network_dummy.get()) ||
-      (iter == m_iter_existing_recent && m_iter_existing_recent_dummy.get()))
-#else
-  if(iter == m_iter_existing_recent && m_iter_existing_recent_dummy.get())
-#endif
-  {
-    text_renderer->set_property("foreground", std::string("grey"));
-  } 
-#endif // PROPERTIES_ENABLED
 }
 
 #ifndef GLOM_ENABLE_CLIENT_ONLY
@@ -585,13 +534,8 @@ void Dialog_ExistingOrNew::new_icon_data_func(Gtk::CellRenderer* renderer, const
 {
   Gtk::CellRendererPixbuf* pixbuf_renderer = dynamic_cast<Gtk::CellRendererPixbuf*>(renderer);
   if(!pixbuf_renderer)
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
-  throw std::logic_error("Renderer not a pixbuf renderer in new_icon_data_func");
-#else
-  return;
-#endif
+    throw std::logic_error("Renderer not a pixbuf renderer in new_icon_data_func");
 
-#ifdef GLIBMM_PROPERTIES_ENABLED
   pixbuf_renderer->property_stock_size() = Gtk::ICON_SIZE_BUTTON;
   pixbuf_renderer->property_stock_id() = "";
   pixbuf_renderer->property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>();
@@ -610,49 +554,17 @@ void Dialog_ExistingOrNew::new_icon_data_func(Gtk::CellRenderer* renderer, const
     }
     else
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED    
-      throw std::logic_error("Unexpected iterator in new_icon_data_func");
-#endif      
+      throw std::logic_error("Unexpected iterator in new_icon_data_func");   
     }
   }
-#else
-  pixbuf_renderer->set_property("stock-size", Gtk::ICON_SIZE_BUTTON);
-  pixbuf_renderer->set_property("stock-id", Glib::ustring());
-  pixbuf_renderer->set_property("pixbuf", Glib::RefPtr<Gdk::Pixbuf>());
-      
-  if(iter == m_iter_new_empty)
-    pixbuf_renderer->set_property("stock-id", Gtk::StockID(Gtk::Stock::NEW));
-  else if(iter == m_iter_new_template)
-    pixbuf_renderer->set_property("stock-id", Gtk::StockID(Gtk::Stock::EDIT)); // TODO: More meaningful icon?
-  else if(m_iter_new_template_dummy.get() && iter == *m_iter_new_template_dummy)
-    pixbuf_renderer->set_property("stock-id", Gtk::StockID(Gtk::Stock::DIALOG_ERROR)); // TODO: Use Stock::STOP instead?
-  else
-  {
-    if(m_new_model->is_ancestor(m_iter_new_template, iter))
-    {
-      pixbuf_renderer->set_property("icon-name", Glib::ustring("glom"));
-    }
-    else
-    {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED    
-      throw std::logic_error("Unexpected iterator in new_icon_data_func");
-#endif      
-    }
-  }
-#endif 
 }
 
 void Dialog_ExistingOrNew::new_title_data_func(Gtk::CellRenderer* renderer, const Gtk::TreeModel::iterator& iter)
 {
   Gtk::CellRendererText* text_renderer = dynamic_cast<Gtk::CellRendererText*>(renderer);
   if(!text_renderer) 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
-    throw std::logic_error("Renderer not a text renderer in new_title_data_func");
-#else
-    return;
-#endif    
+    throw std::logic_error("Renderer not a text renderer in new_title_data_func");  
 
-#ifdef GLIBMM_PROPERTIES_ENABLED
   text_renderer->property_text() = (*iter)[m_new_columns.m_col_title];
 
   // Default: Use default color
@@ -662,18 +574,6 @@ void Dialog_ExistingOrNew::new_title_data_func(Gtk::CellRenderer* renderer, cons
   {
     text_renderer->property_foreground() = "grey";
   }
-#else
-  Glib::ustring text = (*iter)[m_new_columns.m_col_title];
-  text_renderer->set_property("text", text);
-
-  // Default: Use default color
-  text_renderer->set_property("foreground-set", false);
-  // Use grey if parent item has no children
-  if( (iter == m_iter_new_template && m_iter_new_template_dummy.get()))
-  {
-    text_renderer->set_property("foreground", Glib::ustring("grey"));
-  }
-#endif    
 }
 #endif //GLOM_ENABLE_CLIENT_ONLY
 
diff --git a/glom/frame_glom.cc b/glom/frame_glom.cc
index b0592ed..1c4e697 100644
--- a/glom/frame_glom.cc
+++ b/glom/frame_glom.cc
@@ -2190,7 +2190,6 @@ bool Frame_Glom::connection_request_password_and_choose_new_database_name()
     m_pDialogConnection->set_database_name(database_name_possible);
     //std::cout << "debug: possible name=" << database_name_possible << std::endl;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       g_assert(m_pDialogConnection);
@@ -2200,14 +2199,6 @@ bool Frame_Glom::connection_request_password_and_choose_new_database_name()
     }
     catch(const ExceptionConnection& ex)
     {
-#else //GLIBMM_EXCEPTIONS_ENABLED
-    std::auto_ptr<ExceptionConnection> error;
-    g_assert(m_pDialogConnection);
-    sharedptr<SharedConnection> sharedconnection = m_pDialogConnection->connect_to_server_with_connection_settings(error);
-    if(error.get())
-    {
-      const ExceptionConnection& ex = *error;
-#endif //GLIBMM_EXCEPTIONS_ENABLED
       //g_warning("Frame_Glom::connection_request_password_and_choose_new_database_name(): caught exception.");
 
       if(ex.get_failure_type() == ExceptionConnection::FAILURE_NO_SERVER)
@@ -2388,7 +2379,6 @@ bool Frame_Glom::connection_request_password_and_attempt(bool& database_not_foun
       //TODO: Remove any previous database setting?
       if(m_pDialogConnection)
       {
-        #ifdef GLIBMM_EXCEPTIONS_ENABLED
         try
         {
           sharedconnection = m_pDialogConnection->connect_to_server_with_connection_settings();
@@ -2400,15 +2390,6 @@ bool Frame_Glom::connection_request_password_and_attempt(bool& database_not_foun
           if(!handle_request_password_connection_error(true, ex, database_not_found))
             return false;
         }
-        #else //GLIBMM_EXCEPTIONS_ENABLED
-        std::auto_ptr<ExceptionConnection> local_error;
-        sharedconnection =
-          m_pDialogConnection->connect_to_server_with_connection_settings(local_error);
-        if(!local_error.get())
-          return true;
-        else if(!handle_request_password_connection_error(true, *local_error, database_not_found))
-          return false;
-        #endif //GLIBMM_EXCEPTIONS_ENABLED
       }
       else
       {
@@ -2417,7 +2398,6 @@ bool Frame_Glom::connection_request_password_and_attempt(bool& database_not_foun
         connectionpool->set_user(known_username);
         connectionpool->set_password(known_password);
 
-        #ifdef GLIBMM_EXCEPTIONS_ENABLED
         try
         {
           Base_DB::connect_to_server(get_app_window());
@@ -2428,17 +2408,6 @@ bool Frame_Glom::connection_request_password_and_attempt(bool& database_not_foun
           if(!handle_request_password_connection_error(false, ex, database_not_found))
             return false;
         }
-        #else
-        std::auto_ptr<ExceptionConnection> error;
-        const bool connected = Base_DB::connect_to_server(get_app_window(), error);
-        if(!connected || error.get())
-        {
-          if(!handle_request_password_connection_error(false, *error, database_not_found))
-            return false;
-        }
-        else
-          return true;
-        #endif
       }
 
       //Try again.
diff --git a/glom/glade_utils.h b/glom/glade_utils.h
index ebf6f62..ef1411a 100644
--- a/glom/glade_utils.h
+++ b/glom/glade_utils.h
@@ -62,7 +62,6 @@ void helper_get_glade_widget_derived_with_warning(const std::string& filename, c
 {
   Glib::RefPtr<Gtk::Builder> refXml;
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     refXml = Gtk::Builder::create_from_file(Utils::get_glade_file_path(filename), id);
@@ -79,14 +78,6 @@ void helper_get_glade_widget_derived_with_warning(const std::string& filename, c
   {
     std::cerr << ex.what() << std::endl;
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  refXml = Gtk::Builder::create_from_file(Utils::get_glade_file_path(filename), id, error);
-  if (error.get())
-  {
-    std::cerr << error->what() << std::endl;
-  }
-#endif
 
   if(refXml)
   {
@@ -119,7 +110,6 @@ void get_glade_widget_with_warning(const std::string& filename, const Glib::ustr
 {
   Glib::RefPtr<Gtk::Builder> refXml;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     refXml = Gtk::Builder::create_from_file(Utils::get_glade_file_path(filename), id);
@@ -136,14 +126,6 @@ void get_glade_widget_with_warning(const std::string& filename, const Glib::ustr
   {
     std::cerr << ex.what() << std::endl;
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  refXml = Gtk::Builder::create_from_file(Utils::get_glade_file_path(filename), id, error);
-  if (error.get())
-  {
-    std::cerr << error->what() << std::endl;
-  }
-#endif
 
   if(refXml)
   {
diff --git a/glom/import_csv/csv_parser.cc b/glom/import_csv/csv_parser.cc
index f4af1c7..d9b8f54 100644
--- a/glom/import_csv/csv_parser.cc
+++ b/glom/import_csv/csv_parser.cc
@@ -500,7 +500,6 @@ void CsvParser::on_file_read(const Glib::RefPtr<Gio::AsyncResult>& result, const
       sigc::mem_fun(*this, &CsvParser::on_idle_parse));
   }
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     m_stream = source->read_finish(result);
@@ -513,20 +512,6 @@ void CsvParser::on_file_read(const Glib::RefPtr<Gio::AsyncResult>& result, const
     signal_file_read_error().emit(ex.what());
     clear();
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  m_stream = source->read_finish(result, error);
-  if (!error.get())
-  {
-    m_buffer.reset(new Buffer);
-    m_stream->read_async(m_buffer->buf, sizeof(m_buffer->buf), sigc::mem_fun(*this, &CsvParser::on_buffer_read));
-  }
-  else
-  {
-    signal_file_read_error().emit(error->what());
-    clear();
-  }
-#endif
 }
 
 void CsvParser::copy_buffer_and_continue_reading(gssize size)
@@ -548,7 +533,6 @@ void CsvParser::copy_buffer_and_continue_reading(gssize size)
 
 void CsvParser::on_buffer_read(const Glib::RefPtr<Gio::AsyncResult>& result)
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     const gssize size = m_stream->read_finish(result);
@@ -559,24 +543,10 @@ void CsvParser::on_buffer_read(const Glib::RefPtr<Gio::AsyncResult>& result)
     signal_file_read_error().emit(ex.what());
     clear();
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  const gssize size = m_stream->read_finish(result, error);
-  if (!error.get())
-  {
-    copy_buffer_and_continue_reading(size);
-  }
-  else
-  {
-    signal_file_read_error().emit(error->what());
-    clear();
-  }
-#endif
 }
 
 void CsvParser::on_file_query_info(const Glib::RefPtr<Gio::AsyncResult>& result, const Glib::RefPtr<Gio::File>& source)
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     Glib::RefPtr<Gio::FileInfo> info = source->query_info_finish(result);
@@ -587,17 +557,6 @@ void CsvParser::on_file_query_info(const Glib::RefPtr<Gio::AsyncResult>& result,
   {
     std::cerr << "Failed to fetch display name of uri " << source->get_uri() << ": " << ex.what() << std::endl;
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  Glib::RefPtr<Gio::FileInfo> info = source->query_info_finish(result, error);
-  if (!error.get())
-  {
-    if(info)
-      signal_have_display_name().emit(info->get_display_name());
-  }
-  else
-    std::cerr << "Failed to fetch display name of uri " << source->get_uri() << ": " << error->what() << std::endl;
-#endif
 }
 
 void CsvParser::set_state(State state)
diff --git a/glom/import_csv/dialog_import_csv.cc b/glom/import_csv/dialog_import_csv.cc
index 6339784..b7ab7d3 100644
--- a/glom/import_csv/dialog_import_csv.cc
+++ b/glom/import_csv/dialog_import_csv.cc
@@ -76,10 +76,8 @@ Dialog_Import_CSV::Dialog_Import_CSV(BaseObjectType* cobject, const Glib::RefPtr
   builder->get_widget("import_csv_sample_rows", m_sample_rows);
   builder->get_widget("import_csv_advice_label", m_advice_label);
   builder->get_widget("import_csv_error_label", m_error_label);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED  
   if(!m_sample_view || !m_encoding_combo || !m_target_table || !m_encoding_info || !m_first_line_as_title || !m_sample_rows || !m_error_label)
     throw std::runtime_error("Missing widgets from glade file for Dialog_Import_CSV");
-#endif
 
   //Fill the list of encodings:
   m_encoding_model = Gtk::ListStore::create(m_encoding_columns);
@@ -533,15 +531,9 @@ Gtk::TreeViewColumn* Dialog_Import_CSV::create_sample_column(const Glib::ustring
 Gtk::CellRendererCombo* Dialog_Import_CSV::create_sample_cell(guint index)
 {
   Gtk::CellRendererCombo* cell = new Gtk::CellRendererCombo;
-#ifdef GLIBMM_PROPERTIES_ENABLED
   cell->property_model() = m_field_model_sorted;
   cell->property_text_column() = 0;
   cell->property_has_entry() = false;
-#else
-  cell->set_property("model", m_field_model_sorted);
-  cell->set_property("text-column", 0);
-  cell->set_property("has_entry", false);
-#endif
   cell->signal_edited().connect(sigc::bind(sigc::mem_fun(*this, &Dialog_Import_CSV::on_field_edited), index));
 
   return cell;
@@ -551,10 +543,8 @@ void Dialog_Import_CSV::line_data_func(Gtk::CellRenderer* renderer, const Gtk::T
 {
   const int row = (*iter)[m_sample_columns.m_col_row];
   Gtk::CellRendererText* renderer_text = dynamic_cast<Gtk::CellRendererText*>(renderer);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   if(!renderer_text)
     throw std::logic_error("CellRenderer is not a CellRendererText in line_data_func");
-#endif
 
   if(row == -1)
     renderer_text->set_property("text", Glib::ustring(_("Target Field")));
@@ -566,9 +556,7 @@ void Dialog_Import_CSV::field_data_func(Gtk::CellRenderer* renderer, const Gtk::
 {
   const int row = (*iter)[m_sample_columns.m_col_row];
   Gtk::CellRendererCombo* renderer_combo = dynamic_cast<Gtk::CellRendererCombo*>(renderer);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   if(!renderer_combo) throw std::logic_error("CellRenderer is not a CellRendererCombo in field_data_func");
-#endif
 
   Glib::ustring text;
   bool editable = false;
@@ -733,7 +721,6 @@ void Dialog_Import_CSV::validate_primary_key()
 void Dialog_Import_CSV::on_parser_file_read_error(const Glib::ustring& error_message)
 {
   std::string filename;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     filename = Glib::filename_from_uri(m_file_uri);
@@ -742,10 +729,6 @@ void Dialog_Import_CSV::on_parser_file_read_error(const Glib::ustring& error_mes
   {
     std::cerr << "Glib::filename_from_uri() failed: " << ex.what() << std::endl;
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  filename = Glib::filename_from_uri(m_file_uri, error);
-#endif
   
   show_error_dialog(_("Could Not Open file"),
     Glib::ustring::compose(_("The file at \"%1\" could not be opened: %2"), filename, error_message) );
diff --git a/glom/import_csv/dialog_import_csv_progress.cc b/glom/import_csv/dialog_import_csv_progress.cc
index 3c0caff..dc9d90a 100644
--- a/glom/import_csv/dialog_import_csv_progress.cc
+++ b/glom/import_csv/dialog_import_csv_progress.cc
@@ -39,10 +39,8 @@ Dialog_Import_CSV_Progress::Dialog_Import_CSV_Progress(BaseObjectType* cobject,
   builder->get_widget("import_csv_progress_progress_bar", m_progress_bar);
   builder->get_widget("import_csv_progress_textview", m_text_view);
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   if(!m_progress_bar || !m_text_view)
     throw std::runtime_error("Missing widgets from glade file for Dialog_Import_CSV_Progress");
-#endif    
 }
 
 bool Dialog_Import_CSV_Progress::init_db_details(const Glib::ustring& table_name)
@@ -70,7 +68,6 @@ void Dialog_Import_CSV_Progress::import(Dialog_Import_CSV& data_source)
     // parsing error.
     
     std::string filename;
-    #ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       filename = Glib::filename_from_uri(data_source.get_file_uri());
@@ -79,10 +76,6 @@ void Dialog_Import_CSV_Progress::import(Dialog_Import_CSV& data_source)
     {
       std::cerr << "Glib::filename_from_uri() failed: " << ex.what() << std::endl;
     }
-    #else
-    std::auto_ptr<Glib::Error> error;
-    filename = Glib::filename_from_uri(data_source.get_file_uri(), error);
-    #endif
 
     m_progress_bar->set_text(Glib::ustring::compose(_("Parsing CSV file %1"), filename));
     m_ready_connection = data_source.signal_state_changed().connect(sigc::mem_fun(*this, &Dialog_Import_CSV_Progress::on_state_changed));
@@ -288,9 +281,7 @@ void Dialog_Import_CSV_Progress::set_primary_key_value(const Gtk::TreeModel::ite
 
 Gnome::Gda::Value Dialog_Import_CSV_Progress::get_primary_key_value(const Gtk::TreeModel::iterator& /* row */) const
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   throw std::logic_error("Dialog_Import_CSV_Progress::get_primary_key_value() called");
-#endif
 
   return Gnome::Gda::Value();
 }
diff --git a/glom/libglom/connectionpool_backends/postgres_self.cc b/glom/libglom/connectionpool_backends/postgres_self.cc
index c6cd29a..6e1f58e 100644
--- a/glom/libglom/connectionpool_backends/postgres_self.cc
+++ b/glom/libglom/connectionpool_backends/postgres_self.cc
@@ -323,7 +323,6 @@ Glib::ustring PostgresSelfHosted::get_postgresql_utils_version(const SlotProgres
   //We want the characters at the end:  
   const gchar* VERSION_REGEX = "pg_ctl \\(PostgreSQL\\) (.*)";
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     regex = Glib::Regex::create(VERSION_REGEX);
@@ -333,15 +332,6 @@ Glib::ustring PostgresSelfHosted::get_postgresql_utils_version(const SlotProgres
     std::cerr << "Glom: Glib::Regex::create() failed: " << ex.what() << std::endl;
     return result;
   } 
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  regex = Glib::Regex::create(VERSION_REGEX, static_cast<Glib::RegexCompileFlags>(0), static_cast<Glib::RegexMatchFlags>(0), ex);
-  if(ex.get())
-  {
-    std::cerr << "Glom: Glib::Regex::create() failed: " << ex->what() << std::endl;
-    return result;
-  }
-  #endif
  
   if(!regex)
     return result;
@@ -375,7 +365,6 @@ float PostgresSelfHosted::get_postgresql_utils_version_as_number(const SlotProgr
   //We want the characters at the end:  
   const gchar* VERSION_REGEX = "^(\\d*)\\.(\\d*)";
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     regex = Glib::Regex::create(VERSION_REGEX);
@@ -385,15 +374,6 @@ float PostgresSelfHosted::get_postgresql_utils_version_as_number(const SlotProgr
     std::cerr << "Glom: Glib::Regex::create() failed: " << ex.what() << std::endl;
     return result;
   } 
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  regex = Glib::Regex::create(VERSION_REGEX, static_cast<Glib::RegexCompileFlags>(0), static_cast<Glib::RegexMatchFlags>(0), ex);
-  if(ex.get())
-  {
-    std::cerr << "Glom: Glib::Regex::create() failed: " << ex->what() << std::endl;
-    return result;
-  }
-  #endif
  
   if(!regex)
     return result;
@@ -686,7 +666,7 @@ int PostgresSelfHosted::discover_first_free_port(int start_port, int end_port)
     std::cerr << "Create socket: " << WSAGetLastError() << std::endl;
 #else
     perror("Create socket");
-#endif
+#endif //G_OS_WIN32
     return 0;
   }
 
@@ -746,7 +726,7 @@ int PostgresSelfHosted::discover_first_free_port(int start_port, int end_port)
   closesocket(fd);
 #else
   close(fd);
-#endif
+#endif //G_OS_WIN32
 
   std::cerr << "debug: ConnectionPool::discover_first_free_port(): No port was available." << std::endl;
   return 0;
@@ -761,7 +741,6 @@ bool PostgresSelfHosted::create_text_file(const std::string& file_uri, const std
   Glib::RefPtr<Gio::FileOutputStream> stream;
 
   //Create the file if it does not already exist:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     if(file->query_exists())
@@ -777,13 +756,6 @@ bool PostgresSelfHosted::create_text_file(const std::string& file_uri, const std
   }
   catch(const Gio::Error& ex)
   {
-#else
-  std::auto_ptr<Gio::Error> error;
-  stream.create(error);
-  if(error.get())
-  {
-    const Gio::Error& ex = *error.get();
-#endif
     // If the operation was not successful, print the error and abort
     std::cerr << "ConnectionPool::create_text_file(): exception while creating file." << std::endl
       << "  file uri:" << file_uri << std::endl
@@ -798,7 +770,6 @@ bool PostgresSelfHosted::create_text_file(const std::string& file_uri, const std
 
   gsize bytes_written = 0;
   const std::string::size_type contents_size = contents.size();
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     //Write the data to the output uri
@@ -806,12 +777,6 @@ bool PostgresSelfHosted::create_text_file(const std::string& file_uri, const std
   }
   catch(const Gio::Error& ex)
   {
-#else
-  bytes_written = stream->write(contents.data(), contents_size, error);
-  if(error.get())
-  {
-    Gio::Error& ex = *error.get();
-#endif
     // If the operation was not successful, print the error and abort
     std::cerr << "ConnectionPool::create_text_file(): exception while writing to file." << std::endl
       << "  file uri:" << file_uri << std::endl
diff --git a/glom/libglom/data_structure/field.cc b/glom/libglom/data_structure/field.cc
index 2d895e1..34dcb51 100644
--- a/glom/libglom/data_structure/field.cc
+++ b/glom/libglom/data_structure/field.cc
@@ -254,7 +254,6 @@ Glib::ustring Field::sql(const Gnome::Gda::Value& value, const Glib::RefPtr<Gnom
 Glib::ustring Field::sql(const Gnome::Gda::Value& value) const
 {
   sharedptr<SharedConnection> connection;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     connection = ConnectionPool::get_instance()->connect();
@@ -264,12 +263,6 @@ Glib::ustring Field::sql(const Gnome::Gda::Value& value) const
     //TODO: Do something more useful here
     std::cerr << "Field::sql, connection failed: " << ex.what() << std::endl;
   }
-#else
-  std::auto_ptr<Glom::ExceptionConnection> ex;
-  connection = ConnectionPool::get_instance()->connect(ex);
-  if (ex.get())
-    std::cerr << "Field::sql, connection failed: " << ex->what() << std::endl;
-#endif
   if(connection)
   {
     Glib::RefPtr<Gnome::Gda::Connection> gda_connection = connection->get_gda_connection();
@@ -554,12 +547,7 @@ Glib::RefPtr<Gnome::Gda::Holder> Field::get_holder(const Gnome::Gda::Value& valu
   */
 
   Glib::RefPtr<Gnome::Gda::Holder> holder = Gnome::Gda::Holder::create(gtype, real_name);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   holder->set_value_as_value(value);
-#else
-  std::auto_ptr<Glib::Error> ex;
-  holder->set_value_as_value(value, ex);
-#endif
   return holder;
 }
 
diff --git a/glom/libglom/data_structure/fieldtypes.cc b/glom/libglom/data_structure/fieldtypes.cc
index 7af937f..9cc384a 100644
--- a/glom/libglom/data_structure/fieldtypes.cc
+++ b/glom/libglom/data_structure/fieldtypes.cc
@@ -44,17 +44,8 @@ FieldTypes::FieldTypes(const Glib::RefPtr<Gnome::Gda::Connection>& gda_connectio
     //the Gda::ValueType used by Glib::RefPtr<Gnome::Gda::Column>.
     //This first call to update_meta_store() is also necessary for other calls to get_meta_store_data() elsewhere to succeed.
     Glib::RefPtr<Gnome::Gda::DataModel> data_model_tables;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     if(true) //Already done in ConnectionPool::connect(): gda_connection->update_meta_store())
       data_model_tables = gda_connection->get_meta_store_data(Gnome::Gda::CONNECTION_META_TYPES);
-#else
-    std::auto_ptr<Glib::Error> error;
-    if(true) //Already done in ConnectionPool::connect(): gda_connection->update_meta_store(error))
-      data_model_tables = gda_connection->get_meta_store_data(Gnome::Gda::CONNECTION_META_TYPES, error);
-
-    // Ignore error here, we do not process data_model_tables if it is NULL
-    // anyway
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 
     if(!data_model_tables)
       std::cerr << "FieldTypes::FieldTypes(): Couldn't get datamodel" << std::endl;
@@ -71,11 +62,7 @@ FieldTypes::FieldTypes(const Glib::RefPtr<Gnome::Gda::Connection>& gda_connectio
 
       for(int i = 0; i < rows; ++i)
       {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         const Gnome::Gda::Value value_name = data_model_tables->get_value_at(DATAMODEL_FIELDS_COL_NAME, i);
-#else
-        const Gnome::Gda::Value value_name = data_model_tables->get_value_at(DATAMODEL_FIELDS_COL_NAME, i, error);
-#endif
 
         //Get the types's string representation:
         Glib::ustring schema_type_string;
@@ -84,11 +71,7 @@ FieldTypes::FieldTypes(const Glib::RefPtr<Gnome::Gda::Connection>& gda_connectio
         
         if(!schema_type_string.empty())
         {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
           Gnome::Gda::Value value_gdatype = data_model_tables->get_value_at(DATAMODEL_FIELDS_COL_GTYPE, i);
-#else
-          Gnome::Gda::Value value_gdatype = data_model_tables->get_value_at(DATAMODEL_FIELDS_COL_GTYPE, i, error);
-#endif
           if(value_gdatype.get_value_type() == G_TYPE_STRING)
           {
             Glib::ustring type_string = value_gdatype.get_string();
diff --git a/glom/libglom/data_structure/glomconversions.cc b/glom/libglom/data_structure/glomconversions.cc
index ff4fe06..834839c 100644
--- a/glom/libglom/data_structure/glomconversions.cc
+++ b/glom/libglom/data_structure/glomconversions.cc
@@ -220,13 +220,7 @@ Glib::ustring Conversions::format_tm(const tm& tm_data, const std::locale& local
   {
     //Converts from the user's current locale to utf8. I would prefer a generic conversion from any locale,
     // but there is no such function, and it's hard to do because I don't know how to get the encoding name from the std::locale()
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     text = Glib::locale_to_utf8(text);
-#else
-    std::auto_ptr<Glib::Error> error;
-    text = Glib::locale_to_utf8(text, error);
-    // Ignore error for now
-#endif
   }
 
   //std::cout << "DEBUG: format_tm(): returning: " << text << std::endl;
@@ -457,12 +451,7 @@ Glib::ustring Conversions::get_text_for_gda_value(Field::glom_field_type glom_ty
       {
         std::string charset;
         Glib::get_charset(charset);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         Glib::ustring currency_symbol = Glib::convert_with_fallback(numeric_format.m_currency_symbol, charset, "UTF-8");
-#else
-        std::auto_ptr<Glib::Error> error;
-        Glib::ustring currency_symbol = Glib::convert_with_fallback(numeric_format.m_currency_symbol, charset, "UTF-8", error);
-#endif
         // Uses convert_with_fallback(.) for the curreny symbol to avoid an
         // exception where the operator<<'s automatic conversion fails.
         // Incompatible encodings are possible since the currency symbol itself
@@ -480,12 +469,7 @@ Glib::ustring Conversions::get_text_for_gda_value(Field::glom_field_type glom_ty
     {
       // Converts from the user's current locale to utf8. I would prefer a generic conversion from any locale,
       // but there is no such function, and it's hard to do because I don't know how to get the encoding name from the std::locale()
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       text = Glib::locale_to_utf8(text);
-#else
-      std::auto_ptr<Glib::Error> error;
-      text = Glib::locale_to_utf8(text, error);
-#endif
     }
 
     //std::cout << "DEBUG: Conversions::get_text_for_gda_value(): number=" << number << ", text=" << text << std::endl;
diff --git a/glom/libglom/db_utils.cc b/glom/libglom/db_utils.cc
index 2bd3852..af904f7 100644
--- a/glom/libglom/db_utils.cc
+++ b/glom/libglom/db_utils.cc
@@ -37,7 +37,6 @@ namespace DbUtils
 static Glib::RefPtr<Gnome::Gda::Connection> get_connection()
 {
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> sharedconnection;
   try
   {
@@ -47,15 +46,6 @@ static Glib::RefPtr<Gnome::Gda::Connection> get_connection()
   {
     std::cerr << "get_connection(): " << error.what() << std::endl;
   }
-#else
-  std::auto_ptr<ExceptionConnection> error;
-  sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_and_connect(error);
-  if(error.get())
-  {
-    std::cerr << "get_connection(): " << error->what() << std::endl;
-    // TODO: Rethrow?
-  }
-#endif
 
   if(!sharedconnection)
   {
@@ -90,12 +80,7 @@ static void update_gda_metastore_for_table(const Glib::ustring& table_name)
 
   //std::cout << "DEBUG: update_gda_metastore_for_table(): Calling Gda::Connection::update_meta_store_table(" << table_name << ") ..." << std::endl;
   //TODO: This doesn't seem to quite work yet:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   gda_connection->update_meta_store_table(table_name);
-#else
-  std::auto_ptr<Glib::Error> update_error;
-  gda_connection->update_meta_store_table(table_name, Glib::ustring(), update_error);
-#endif
 
   //This does work, though it takes ages: gda_connection->update_meta_store();
   //std::cout << "DEBUG: update_gda_metastore_for_table(): ... Finished calling Gda::Connection::update_meta_store_table()" << std::endl;
@@ -204,46 +189,21 @@ bool recreate_database_from_document(Document* document, const sigc::slot<void>&
     return false;
 
   connection_pool->set_database(db_name);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#else
-  std::auto_ptr<std::exception> error;
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
     connection_pool->set_ready_to_connect(); //This has succeeded already.
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     sharedptr<SharedConnection> sharedconnection = connection_pool->connect();
-#else
-    sharedptr<SharedConnection> sharedconnection = connection_pool->connect(error);
-    if(!error.get())
-    {
-#endif // GLIBMM_EXCEPTIONS_ENABLED
       g_warning("Application::recreate_database(): Failed because database exists already.");
 
       return false; //Connection to the database succeeded, because no exception was thrown. so the database exists already.
-#ifndef GLIBMM_EXCEPTIONS_ENABLED
-    }
-#endif // !GLIBMM_EXCEPTIONS_ENABLED
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const ExceptionConnection& ex)
   {
-#else
-  if(error.get())
-  {
-    const ExceptionConnection* exptr = dynamic_cast<ExceptionConnection*>(error.get());
-    if(exptr)
-    {
-      const ExceptionConnection& ex = *exptr;
-#endif // GLIBMM_EXCEPTIONS_ENABLED
       if(ex.get_failure_type() == ExceptionConnection::FAILURE_NO_SERVER)
       {
         g_warning("Application::recreate_database(): Failed because connection to server failed even without specifying a database.");
         return false;
       }
-#ifndef GLIBMM_EXCEPTIONS_ENABLED
-    }
-#endif // !GLIBMM_EXCEPTIONS_ENABLED
 
     //Otherwise continue, because we _expected_ connect() to fail if the db does not exist yet.
   }
@@ -264,26 +224,13 @@ bool recreate_database_from_document(Document* document, const sigc::slot<void>&
   progress();
 
   sharedptr<SharedConnection> sharedconnection;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     sharedconnection = connection_pool->connect();
-#else
-    sharedconnection = connection_pool->connect(error);
-    if(!error.get())
-#endif // GLIBMM_EXCEPTIONS_ENABLED
       connection_pool->set_database(db_name); //The database was successfully created, so specify it when connecting from now on.
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const ExceptionConnection& ex)
   {
-#else
-  if(error.get())
-  {
-    const std::exception& ex = *error.get();
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     g_warning("Application::recreate_database(): Failed to connect to the newly-created database.");
     return false;
   }
@@ -386,7 +333,6 @@ SystemPrefs get_database_preferences(Document* document)
   while(attempts < 2)
   {
     bool succeeded = true;
-    #ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       //const std::string full_query = Utils::sqlbuilder_get_full_query(builder);
@@ -419,33 +365,6 @@ SystemPrefs get_database_preferences(Document* document)
       std::cerr << "get_database_preferences(): exception: " << ex.what() << std::endl;
       succeeded = false;
     }
-    #else // GLIBMM_EXCEPTIONS_ENABLED
-    std::auto_ptr<Glib::Error> error;
-    Glib::RefPtr<Gnome::Gda::DataModel> datamodel = query_execute_select(sql_query);
-    if(datamodel && (datamodel->get_n_rows() != 0))
-    {
-      result.m_name = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(0, 0, error));
-      result.m_org_name = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(1, 0, error));
-      result.m_org_address_street = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(2, 0, error));
-      result.m_org_address_street2 = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(3, 0, error));
-      result.m_org_address_town = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(4, 0, error));
-      result.m_org_address_county = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(5, 0, error));
-      result.m_org_address_country = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(6, 0, error));
-      result.m_org_address_postcode = Conversions::get_text_for_gda_value(Field::TYPE_TEXT, datamodel->get_value_at(7, 0, error));
-
-      //We need to be more clever about these column indexes if we add more new fields:
-      if(optional_org_logo)
-        result.m_org_logo = datamodel->get_value_at(8, 0, error);
-    }
-    else
-      succeeded = false;
-
-    if (error.get())
-    {
-      std::cerr << "Error: " << error->what() << std::endl;
-      succeeded = false;
-    }
-    #endif
     //Return the result, or try again:
     if(succeeded)
       return result;
@@ -493,9 +412,7 @@ void set_database_preferences(Document* document, const SystemPrefs& prefs)
 
 bool add_standard_tables(Document* document)
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
     Document::type_vec_fields pref_fields;
     sharedptr<TableInfo> prefs_table_info = Document::create_table_system_preferences(pref_fields);
@@ -587,7 +504,6 @@ bool add_standard_tables(Document* document)
       return false;
     }
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Glib::Exception& ex)
   {
     std::cerr << "add_standard_tables(): caught exception: " << ex.what() << std::endl;
@@ -598,7 +514,6 @@ bool add_standard_tables(Document* document)
     std::cerr << "add_standard_tables(): caught exception: " << ex.what() << std::endl;
     return false;
   }
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 }
 
 bool add_standard_groups(Document* document)
@@ -791,18 +706,12 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
     g_free (quoted_table_name_c);
     quoted_table_name_c = 0;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     holder_table_name->set_value(quoted_table_name);
-#else
-    std::auto_ptr<Glib::Error> error;
-    holder_table_name->set_value(quoted_table_name, error);
-#endif
 
     std::list< Glib::RefPtr<Gnome::Gda::Holder> > holder_list;
     holder_list.push_back(holder_table_name);
 
     Glib::RefPtr<Gnome::Gda::DataModel> data_model_fields;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       data_model_fields = connection->get_meta_store_data(Gnome::Gda::CONNECTION_META_FIELDS, holder_list);
@@ -815,11 +724,6 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
     {
       std::cerr << "get_fields_for_table_from_database(): Error: " << ex.what() << std::endl;
     }
-#else
-    data_model_fields = connection->get_meta_store_data(Gnome::Gda::CONNECTION_META_FIELDS, holder_list, error);
-
-    // Ignore error, data_model_fields presence is checked below
-#endif
 
 
     if(!data_model_fields)
@@ -842,7 +746,6 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
       Glib::RefPtr<Gnome::Gda::MetaStruct> metastruct =
         Gnome::Gda::MetaStruct::create(store, Gnome::Gda::META_STRUCT_FEATURE_NONE);
       GdaMetaDbObject* meta_dbobject = 0;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       try
       {
         meta_dbobject = metastruct->complement(Gnome::Gda::META_DB_TABLE,
@@ -855,17 +758,6 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
         handle_error(ex);
         //TODO: Really fail.
       }
-#else
-      std::auto_ptr<Glib::Error> ex;
-      meta_dbobject = metastruct->complement(Gnome::Gda::META_DB_TABLE,
-        Gnome::Gda::Value(), /* catalog */
-        Gnome::Gda::Value(), /* schema */
-        Gnome::Gda::Value(quoted_table_name), ex); //It's a static instance inside the MetaStore.
-       if(error.get())
-       {
-         handle_error(*ex);
-       }
-#endif //GLIBMM_EXCEPTIONS_ENABLED
       GdaMetaTable* meta_table = GDA_META_TABLE(meta_dbobject);
 
       //Examine each field:
@@ -876,12 +768,7 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
         Glib::RefPtr<Gnome::Gda::Column> field_info = Gnome::Gda::Column::create();
 
         //Get the field name:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED //TODO: Actually catch exceptions.
         Gnome::Gda::Value value_name = data_model_fields->get_value_at(DATAMODEL_FIELDS_COL_NAME, row);
-#else
-        std::auto_ptr<Glib::Error> value_error;
-        Gnome::Gda::Value value_name = data_model_fields->get_value_at(DATAMODEL_FIELDS_COL_NAME, row, value_error);
-#endif
         if(value_name.get_value_type() ==  G_TYPE_STRING)
         {
           if(value_name.get_string().empty())
@@ -894,11 +781,7 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
         }
 
         //Get the field type:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         Gnome::Gda::Value value_fieldtype = data_model_fields->get_value_at(DATAMODEL_FIELDS_COL_GTYPE, row);
-#else
-        Gnome::Gda::Value value_fieldtype = data_model_fields->get_value_at(DATAMODEL_FIELDS_COL_GTYPE, row, value_error);
-#endif
         if(value_fieldtype.get_value_type() ==  G_TYPE_STRING)
         {
           const Glib::ustring type_string = value_fieldtype.get_string();
@@ -915,11 +798,7 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
         */
 
         //Get whether it can be null:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         Gnome::Gda::Value value_notnull = data_model_fields->get_value_at(DATAMODEL_FIELDS_COL_NOTNULL, row);
-#else
-        Gnome::Gda::Value value_notnull = data_model_fields->get_value_at(DATAMODEL_FIELDS_COL_NOTNULL, row, value_error);
-#endif
         if(value_notnull.get_value_type() ==  G_TYPE_BOOLEAN)
           field_info->set_allow_null(value_notnull.get_boolean());
 
@@ -962,7 +841,6 @@ type_vec_strings get_table_names_from_database(bool ignore_system_tables)
     Glib::RefPtr<Gnome::Gda::Connection> gda_connection = get_connection();
 
     Glib::RefPtr<Gnome::Gda::DataModel> data_model_tables;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       data_model_tables = gda_connection->get_meta_store_data(Gnome::Gda::CONNECTION_META_TABLES);
@@ -975,11 +853,6 @@ type_vec_strings get_table_names_from_database(bool ignore_system_tables)
     {
       std::cerr << "get_table_names_from_database(): Error: " << ex.what() << std::endl;
     }
-#else
-    std::auto_ptr<Glib::Error> error;
-    data_model_tables = gda_connection->get_meta_store_data(Gnome::Gda::CONNECTION_META_TABLES, error);
-    // Ignore error, data_model_tables presence is checked below
-#endif
 
     if(data_model_tables && (data_model_tables->get_n_columns() == 0))
     {
@@ -991,11 +864,7 @@ type_vec_strings get_table_names_from_database(bool ignore_system_tables)
       const int rows = data_model_tables->get_n_rows();
       for(int i = 0; i < rows; ++i)
       {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         const Gnome::Gda::Value value = data_model_tables->get_value_at(0, i);
-#else
-        const Gnome::Gda::Value value = data_model_tables->get_value_at(0, i, error);
-#endif
         //Get the table name:
         Glib::ustring table_name;
         if(G_VALUE_TYPE(value.gobj()) ==  G_TYPE_STRING)
@@ -1230,20 +1099,12 @@ bool add_column(const Glib::ustring& table_name, const sharedptr<const Field>& f
 {
   ConnectionPool* connection_pool = ConnectionPool::get_instance();
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     connection_pool->add_column(table_name, field);
   }
   catch(const Glib::Error& ex)
   {
-#else
-  std::auto_ptr<Glib::Error> error;
-  connection_pool->add_column(table_name, field, error);
-  if(error.get())
-  {
-    const Glib::Error& ex = *error;
-#endif
     handle_error(ex);
 //    Gtk::MessageDialog window(*parent_window, Utils::bold_message(ex.what()), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
 //    window.run();
@@ -1257,20 +1118,12 @@ bool drop_column(const Glib::ustring& table_name, const Glib::ustring& field_nam
 {
   ConnectionPool* connection_pool = ConnectionPool::get_instance();
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     return connection_pool->drop_column(table_name, field_name);
   }
   catch(const Glib::Error& ex)
   {
-#else
-  std::auto_ptr<Glib::Error> error;
-  connection_pool->add_column(table_name, field_name, error);
-  if(error.get())
-  {
-    const Glib::Error& ex = *error;
-#endif
     handle_error(ex);
 //    Gtk::MessageDialog window(*parent_window, Utils::bold_message(ex.what()), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
 //    window.run();
@@ -1355,12 +1208,7 @@ Gnome::Gda::Value auto_increment_insert_first_if_necessary(const Glib::ustring&
   else
   {
     //Return the value so that a calling function does not need to do a second SELECT.
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     const Gnome::Gda::Value actual_value = datamodel->get_value_at(0, 0);
-#else
-    std::auto_ptr<Glib::Error> value_error;
-    const Gnome::Gda::Value actual_value = datamodel->get_value_at(0, 0, value_error);
-#endif
     //But the caller wants a numeric value not a text value
     //(our system_autoincrements table has it as text, for future flexibility):
     const std::string actual_value_text = actual_value.get_string();
@@ -1392,12 +1240,7 @@ static void recalculate_next_auto_increment_value(const Glib::ustring& table_nam
   if(datamodel && datamodel->get_n_rows() && datamodel->get_n_columns())
   {
     //Increment it:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     const Gnome::Gda::Value value_max = datamodel->get_value_at(0, 0); // A GdaNumeric.
-#else
-    std::auto_ptr<Glib::Error> error;
-    const Gnome::Gda::Value value_max = datamodel->get_value_at(0, 0, error); // A GdaNumeric.
-#endif
     double num_max = Conversions::get_double_for_gda_value_numeric(value_max);
     ++num_max;
 
@@ -1521,7 +1364,6 @@ Glib::RefPtr<Gnome::Gda::DataModel> query_execute_select(const Glib::RefPtr<cons
   }
 
   //TODO: Use DbUtils::query_execute().
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     if(use_cursor)
@@ -1549,18 +1391,6 @@ Glib::RefPtr<Gnome::Gda::DataModel> query_execute_select(const Glib::RefPtr<cons
     std::cerr << "debug: query_execute_select(): Error (" << typeid(ex).name() << "): exception from statement_execute_select_builder(): " << ex.what() << std::endl;
   }
 
-#else
-  if(use_cursor)
-  {
-    //Specify the STATEMENT_MODEL_CURSOR, so that libgda only gets the rows that we actually use.
-    result = gda_connection->statement_execute_select_builder(builder, Gnome::Gda::STATEMENT_MODEL_CURSOR_FORWARD, ex);
-  }
-  else
-    result = gda_connection->statement_execute_select_builder(builder, ex);
-
-  if(ex.get())
-    std::cerr << "debug: query_execute_select(): Glib::Error from statement_execute_select_builder(): " << ex->what() << std::endl;
-#endif //GLIBMM_EXCEPTIONS_ENABLED
 
   if(!result)
   {
@@ -1584,7 +1414,6 @@ bool query_execute_string(const Glib::ustring& strQuery, const Glib::RefPtr<Gnom
 
   Glib::RefPtr<Gnome::Gda::SqlParser> parser = gda_connection->create_parser();
   Glib::RefPtr<Gnome::Gda::Statement> stmt;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     stmt = parser->parse_string(strQuery);
@@ -1594,21 +1423,11 @@ bool query_execute_string(const Glib::ustring& strQuery, const Glib::RefPtr<Gnom
     std::cerr << "DEBUG: DbUtils::query_execute: SqlParserError: " << error.what() << std::endl;
     return false;
   }
-#else
-  std::auto_ptr<Glib::Error> sql_error;
-  stmt = parser->parse_string(strQuery, sql_error);
-  if(sql_error.get())
-  {
-    std::cerr << "DEBUG: DbUtils::query_execute: SqlParserError:" << sql_error->what() << std::endl;
-    return false;
-  }
-#endif
 
 
   //Debug output:
   if(stmt && ConnectionPool::get_instance()->get_show_debug_output())
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       //TODO: full_query still seems to contain ## parameter names,
@@ -1620,17 +1439,10 @@ bool query_execute_string(const Glib::ustring& strQuery, const Glib::RefPtr<Gnom
     {
       std::cerr << "Debug: query string could not be converted to std::cout: " << ex.what() << std::endl;
     }
-#else
-    const Glib::ustring full_query = stmt->to_sql(params, sql_error);
-    std::cerr << "Debug: query_execute(): " << full_query << std::endl;
-    if (sql_error.get())
-      std::cerr << "Debug: query string could not be converted to std::cout: " << sql_error->what() << std::endl;
-#endif
   }
 
 
   int exec_retval = -1;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     exec_retval = gda_connection->statement_execute_non_select(stmt, params);
@@ -1642,7 +1454,6 @@ bool query_execute_string(const Glib::ustring& strQuery, const Glib::RefPtr<Gnom
     std::cerr << "  full_query: " << full_query << std::endl;
     return false;
   }
-#endif
   return (exec_retval >= 0);
 }
 
@@ -1664,7 +1475,6 @@ bool query_execute(const Glib::RefPtr<const Gnome::Gda::SqlBuilder>& builder)
 
 
   int exec_retval = -1;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     exec_retval = gda_connection->statement_execute_non_select_builder(builder);
@@ -1695,17 +1505,6 @@ bool query_execute(const Glib::RefPtr<const Gnome::Gda::SqlBuilder>& builder)
     std::cerr << "debug: query_execute_select(): Error (" << typeid(ex).name() << "): exception from statement_execute_non_select_builder(): " << ex.what() << std::endl;
     return false;
   }
-#else
-  std::auto_ptr<Glib::Error> exec_error;
-  exec_retval = gda_connection->statement_execute_non_select_builder(builder, exec_error);
-  if(exec_error.get())
-  {
-    std::cerr << "DbUtils::query_execute: ConnectionError: " << exec_error->what() << std::endl;
-    const std::string full_query = Utils::sqlbuilder_get_full_query(builder);
-    std::cerr << "  full_query: " << full_query << std::endl;
-    return false;
-  }
-#endif
   return (exec_retval >= 0);
 }
 
diff --git a/glom/libglom/document/bakery/document.cc b/glom/libglom/document/bakery/document.cc
index 5c71d46..77118ef 100644
--- a/glom/libglom/document/bakery/document.cc
+++ b/glom/libglom/document/bakery/document.cc
@@ -210,7 +210,6 @@ bool Document::read_from_disk(int& failure_code)
 
   Glib::RefPtr<Gio::FileInputStream> stream;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     stream = file->read();
@@ -226,32 +225,18 @@ bool Document::read_from_disk(int& failure_code)
     // If the operation was not successful, print the error and abort
     return false; //print_error(ex, input_uri_string);
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  stream = file->read(error);
-  if(error.get())
-    return false; //print_error(ex, input_uri_string);
-#endif
 
   // Read data from the input uri:
   guint buffer[BYTES_TO_PROCESS] = {0, }; // For each chunk.
   gsize bytes_read = 0;
   std::string data; //We use a std::string because we might not get whole UTF8 characters at a time. This might not be necessary.
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#endif
   {
     bool bContinue = true;
     while(bContinue)
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       bytes_read = stream->read(buffer, BYTES_TO_PROCESS);
-#else
-      std::auto_ptr<Glib::Error> gerror;
-      bytes_read = stream->read(buffer, BYTES_TO_PROCESS, gerror);
-      if(gerror.get()) break;
-#endif
 
       if(bytes_read == 0)
         bContinue = false; //stop because we reached the end.
@@ -262,14 +247,8 @@ bool Document::read_from_disk(int& failure_code)
       }
     }
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Gio::Error& ex)
   {
-#else
-  if(error.get())
-  {
-    std::cerr << "Bakery::Document::read_from_disk(): Error: " << error->what() << std::endl;
-#endif
     // If the operation was not successful, print the error and abort
     return false; //print_error(ex, input_uri_string);
   }
@@ -343,7 +322,6 @@ bool Document::write_to_disk()
       return false;
 
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       //Write the data to the output uri
@@ -356,13 +334,6 @@ bool Document::write_to_disk()
     }
     catch(const Gio::Error& ex)
     {
-#else
-    std::auto_ptr<Glib::Error> gerror;
-    stream->write(m_strContents.data(), m_strContents.bytes(), gerror);
-    if(gerror.get())
-    {
-      std::cerr << "akery::Document::write_to_disk(): Error from Gio stream.write(): "<< gerror.get() << std::endl;
-#endif
       // If the operation was not successful, print the error and abort
       std::cerr << "Bakery::Document::write_to_disk(): Error from Gio stream.write(): " << ex.what() << std::endl;
       return false; //print_error(ex, output_uri_string);
@@ -390,7 +361,6 @@ static Glib::ustring get_file_display_name(const Glib::ustring& uri)
   Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(uri);
   Glib::RefPtr<const Gio::FileInfo> file_info;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     file_info = file->query_info(G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME);
@@ -400,12 +370,6 @@ static Glib::ustring get_file_display_name(const Glib::ustring& uri)
     std::cerr << "Application::get_file_display_name(uri=" << uri << "): error: " << ex.what() << std::endl;
     return result;
   }
-#else
-  std::auto_ptr<Gio::Error> error;
-  file_info = uri->query_info(G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, Gio::FILE_QUERY_INFO_NONE, error);
-  if(error.get())
-    return result;
-#endif
 
   if(!file_info)
     return result;
@@ -466,7 +430,6 @@ bool Document::get_read_only() const
     {
       Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(m_file_uri);
       Glib::RefPtr<Gio::FileInfo> info;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       try
       {
         Glib::RefPtr<Gio::FileInfo> info = file->query_info(G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE);
@@ -475,12 +438,6 @@ bool Document::get_read_only() const
       {
         return false; //We should at least be able to read the permissions, so maybe the location is invalid. I'm not sure what the best return result here is.
       }
-#else
-      std::auto_ptr<Glib::Error> error;
-      info = file->query_info(G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, Gio::FILE_QUERY_INFO_NONE, error);
-      if(error.get())
-        return false;
-#endif
 
       if(!info)
         return false;
diff --git a/glom/libglom/example_document_load.cc b/glom/libglom/example_document_load.cc
index 06cc263..87269f5 100644
--- a/glom/libglom/example_document_load.cc
+++ b/glom/libglom/example_document_load.cc
@@ -76,7 +76,6 @@ int main()
   // Get a URI for a test file:
   Glib::ustring uri;
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     uri = Glib::filename_to_uri("/usr/share/glom/doc/examples/example_music_collection.glom");
@@ -86,10 +85,6 @@ int main()
     std::cerr << "Exception from Glib::filename_to_uri(): " << ex.what();
     return 1;
   }
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  uri = Glib::filename_to_uri("/usr/share/glom/doc/examples/example_music_collection.glom", ex);
-  #endif
 
   std::cout << "URI=" << uri << std::endl;
 
diff --git a/glom/libglom/privs.cc b/glom/libglom/privs.cc
index 474f846..7b194e0 100644
--- a/glom/libglom/privs.cc
+++ b/glom/libglom/privs.cc
@@ -46,12 +46,7 @@ Privs::type_vec_strings Privs::get_database_groups()
     const int rows_count = data_model->get_n_rows();
     for(int row = 0; row < rows_count; ++row)
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       const Gnome::Gda::Value value = data_model->get_value_at(0, row);
-#else
-      std::auto_ptr<Glib::Error> value_error;
-      const Gnome::Gda::Value value = data_model->get_value_at(0, row, value_error);
-#endif
       const Glib::ustring name = value.get_string();
       result.push_back(name);
     }
@@ -118,12 +113,7 @@ Privs::type_vec_strings Privs::get_database_users(const Glib::ustring& group_nam
       const int rows_count = data_model->get_n_rows();
       for(int row = 0; row < rows_count; ++row)
       {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         const Gnome::Gda::Value value = data_model->get_value_at(0, row);
-#else
-        std::auto_ptr<Glib::Error> value_error;
-        const Gnome::Gda::Value value = data_model->get_value_at(0, row, value_error);
-#endif
         const Glib::ustring name = value.get_string();
         result.push_back(name);
       }
@@ -146,12 +136,7 @@ Privs::type_vec_strings Privs::get_database_users(const Glib::ustring& group_nam
       const int rows_count = data_model->get_n_rows();
       for(int row = 0; row < rows_count; ++row)
       {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         const Gnome::Gda::Value value = data_model->get_value_at(1, row); //Column 1 is the /* the user list.
-#else
-        std::auto_ptr<Glib::Error> value_error;
-        const Gnome::Gda::Value value = data_model->get_value_at(1, row, value_error); //Column 1 is the /* the user list.
-#endif
         //pg_group is a string, formatted, bizarrely, like so: "{100, 101}".
 
         Glib::ustring group_list;
@@ -173,12 +158,7 @@ Privs::type_vec_strings Privs::get_database_users(const Glib::ustring& group_nam
           Glib::RefPtr<Gnome::Gda::DataModel> data_model = DbUtils::query_execute_select(builder);
           if(data_model)
           {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
             const Gnome::Gda::Value value = data_model->get_value_at(0, 0);
-#else
-            std::auto_ptr<Glib::Error> value_error;
-            const Gnome::Gda::Value value = data_model->get_value_at(0, 0, value_error);
-#endif
             result.push_back(value.get_string());
           }
         }
@@ -289,12 +269,7 @@ Privileges Privs::get_table_privileges(const Glib::ustring& group_name, const Gl
   Glib::RefPtr<Gnome::Gda::DataModel> data_model = DbUtils::query_execute_select(builder);
   if(data_model && data_model->get_n_rows())
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     const Gnome::Gda::Value value = data_model->get_value_at(0, 0);
-#else
-    std::auto_ptr<Glib::Error> value_error;
-    const Gnome::Gda::Value value = data_model->get_value_at(0, 0, value_error);
-#endif
 
     Glib::ustring access_details;
     if(!value.is_null())
@@ -467,12 +442,7 @@ Privileges Privs::get_current_privs(const Glib::ustring& table_name)
     result.m_developer = true;
   }
   */
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> sharedconnection = connection_pool->connect();
-#else
-  std::auto_ptr<ExceptionConnection> ex;
-  sharedptr<SharedConnection> sharedconnection = connection_pool->connect(ex);
-#endif
   if(sharedconnection && sharedconnection->get_gda_connection()->supports_feature(Gnome::Gda::CONNECTION_FEATURE_USERS))
   {
     //Get the "true" rights for any groups that the user is in:
diff --git a/glom/libglom/python_embed/py_glom_relatedrecord.cc b/glom/libglom/python_embed/py_glom_relatedrecord.cc
index 211ab6f..99b089a 100644
--- a/glom/libglom/python_embed/py_glom_relatedrecord.cc
+++ b/glom/libglom/python_embed/py_glom_relatedrecord.cc
@@ -78,13 +78,7 @@ boost::python::object PyGlomRelatedRecord::getitem(const boost::python::object&
   {
     //Try to get the value from the database:
     //const Glib::ustring parent_key_name;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect();
-#else
-    std::auto_ptr<ExceptionConnection> conn_error;
-    sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect(conn_error);
-    // Ignore error, sharedconnection presence is checked below
-#endif
 
     if(!sharedconnection)
     {
@@ -169,13 +163,7 @@ boost::python::object PyGlomRelatedRecord::generic_aggregate(const std::string&
 
   //Try to get the value from the database:
   //const Glib::ustring parent_key_name;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect();
-#else
-  std::auto_ptr<ExceptionConnection> conn_error;
-  sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect(conn_error);
-  // Ignore error, sharedconnection presence is checked below
-#endif
   if(!sharedconnection)
   {
     g_warning("RelatedRecord_sum: no connection.");
diff --git a/glom/libglom/spawn_with_feedback.cc b/glom/libglom/spawn_with_feedback.cc
index 6186ba2..ec24eaa 100644
--- a/glom/libglom/spawn_with_feedback.cc
+++ b/glom/libglom/spawn_with_feedback.cc
@@ -70,7 +70,6 @@ namespace Impl
 static const unsigned int REDIRECT_STDOUT = 1;
 static const unsigned int REDIRECT_STDERR = 2;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
 class SpawnError: public std::runtime_error
 {
 public:
@@ -78,7 +77,6 @@ public:
   : std::runtime_error(error_message)
   {}
 };
-#endif
 
 class SpawnInfo: public sigc::trackable
 {
@@ -111,9 +109,7 @@ private:
     security_attr.bInheritHandle = true;
 
     HANDLE result = CreateFile(filename.c_str(), GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_DELETE, &security_attr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     if(!result) throw SpawnError(win32_error_message());
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     return result;
   }
 #else // G_OS_WIN32
@@ -132,7 +128,6 @@ private:
       gsize bytes_read;
 
       Glib::IOStatus status = Glib::IO_STATUS_NORMAL;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       try
       {
         status = channel->read(buffer, 1024, bytes_read);
@@ -142,15 +137,6 @@ private:
         std::cerr << "Glom::Spawn::Impl::SpawnInfo::on_io: Error while reading from pipe: " << ex.what() << std::endl;
         return false;
       }
-#else
-      std::auto_ptr<Glib::Error> error;
-      status = channel->read(buffer, 1024, bytes_read, error);
-      if(error.get())
-      {
-        std::cerr << "Glom::Spawn::Impl::SpawnInfo::on_io: Error while reading from pipe: " << error->what() << std::endl;
-        return false;
-      }
-#endif
 
       buffer[bytes_read] = '\0';
       result += buffer;
@@ -162,20 +148,9 @@ private:
   void redirect_to_string(int fd, std::string& string)
   {
     Glib::RefPtr<Glib::IOChannel> channel = Glib::IOChannel::create_from_fd(fd);
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     channel->set_flags(Glib::IO_FLAG_NONBLOCK);
-#else
-    std::auto_ptr<Glib::Error> error;
-    channel->set_flags(Glib::IO_FLAG_NONBLOCK, error);
-#endif // !GLIBMM_EXCEPTIONS_ENABLED
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     channel->set_encoding("");
-#else
-    channel->set_encoding("", error);
-    if (error.get())
-      std::cerr << "Error: " << error->what() << std::endl;
-#endif
     channel->set_buffered(false);
 
     Glib::signal_io().connect(sigc::bind(sigc::mem_fun(*this, &SpawnInfo::on_io), channel, sigc::ref(string)), channel, Glib::IO_IN);
@@ -217,37 +192,24 @@ public:
 
     if(!CreateProcess(0, &command[0], 0, 0, true, CREATE_NO_WINDOW, 0, 0, &startup_info, &process_info))
     {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       throw SpawnError(win32_error_message());
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     }
 #else // G_OS_WIN32
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     {
       std::vector<std::string> arguments = Glib::shell_parse_argv(command_line);
       int child_stdout;
       int child_stderr;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       Glib::spawn_async_with_pipes(Glib::get_current_dir(), arguments, Glib::SPAWN_DO_NOT_REAP_CHILD, sigc::slot<void>(), &pid, 0, redirect & REDIRECT_STDOUT ? &child_stdout : 0, redirect & REDIRECT_STDERR ? &child_stderr : 0);
-#else
-      std::auto_ptr<Glib::Error> error;
-      Glib::spawn_async_with_pipes(Glib::get_current_dir(), arguments, Glib::SPAWN_DO_NOT_REAP_CHILD, sigc::slot<void>(), &pid, 0, redirect & REDIRECT_STDOUT ? &child_stdout : 0, redirect & REDIRECT_STDERR ? &child_stderr : 0, error);
-      if (error.get())
-        std::cerr << "Spawn Error: " << error->what() << std::endl;
-#endif
       if(redirect & REDIRECT_STDOUT)
         redirect_to_string(child_stdout, stdout_text);
       if(redirect & REDIRECT_STDERR)
         redirect_to_string(child_stderr, stderr_text);
     }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     catch(Glib::Exception& ex)
     {
       throw SpawnError(ex.what());
     }
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 #endif // !G_OS_WIN32
 
     Glib::signal_child_watch().connect(sigc::mem_fun(*this, &SpawnInfo::on_child_watch), get_pid());
@@ -497,7 +459,6 @@ namespace
 
     int return_status = 0;
     std::string stdout_output;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       return_status = Impl::spawn_sync(second_command, &stdout_output, 0);
@@ -508,9 +469,6 @@ namespace
       // TODO: We should cancel the whole call if this fails three times in 
       // a row or so.
     }
-#else
-    return_status = Impl::spawn_sync(second_command, &stdout_output, 0);
-#endif
 
     if(!success_text.empty())
     {
diff --git a/glom/libglom/test_connectionpool.cc b/glom/libglom/test_connectionpool.cc
index 9e1ff0e..ebe18ae 100644
--- a/glom/libglom/test_connectionpool.cc
+++ b/glom/libglom/test_connectionpool.cc
@@ -64,12 +64,7 @@ main()
 
     //Connect:
     Glom::sharedptr<Glom::SharedConnection> connection;
-    #ifdef GLIBMM_EXCEPTIONS_ENABLED
     connection = Glom::ConnectionPool::get_and_connect();
-    #else
-    std::auto_ptr<Glom::ExceptionConnection> error;
-    connection = Glom::ConnectionPool::get_and_connect(error);
-    #endif
 
     if(connection)
       std::cout << "Connected" << std::endl;
diff --git a/glom/libglom/utils.cc b/glom/libglom/utils.cc
index fe398ff..9143f27 100644
--- a/glom/libglom/utils.cc
+++ b/glom/libglom/utils.cc
@@ -498,14 +498,7 @@ Utils::type_list_values_with_second Utils::get_choice_values(const sharedptr<con
 
   //std::cout << "debug: get_choice_values(): query: " << sql_query << std::endl;
   //Connect to database:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> connection = ConnectionPool::get_instance()->connect();
-#else
-  std::auto_ptr<ExceptionConnection> conn_error;
-  sharedptr<SharedConnection> connection = ConnectionPool::get_instance()->connect(conn_error);
-  if(conn_error.get())
-    return list_values;
-#endif
 
   if(!connection)
     return list_values;
@@ -513,12 +506,7 @@ Utils::type_list_values_with_second Utils::get_choice_values(const sharedptr<con
   const std::string sql_query =
     sqlbuilder_get_full_query(builder);
   //std::cout << "get_choice_values: Executing SQL: " << sql_query << std::endl;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   Glib::RefPtr<Gnome::Gda::DataModel> datamodel = connection->get_gda_connection()->statement_execute_select(sql_query);
-#else
-  std::auto_ptr<Glib::Error> error;
-  Glib::RefPtr<Gnome::Gda::DataModel> datamodel = connection->get_gda_connection()->statement_execute_select(sql_query, Gnome::Gda::STATEMENT_MODEL_RANDOM_ACCESS, error);
-#endif
 
   if(datamodel)
   {
@@ -528,17 +516,10 @@ Utils::type_list_values_with_second Utils::get_choice_values(const sharedptr<con
     {
 
       std::pair<Gnome::Gda::Value, Gnome::Gda::Value> itempair;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       itempair.first = datamodel->get_value_at(0, row);
 
       if(with_second)
         itempair.second = datamodel->get_value_at(1, row);
-#else
-      itempair.first = datamodel->get_value_at(0, row, error);
-
-      if(with_second)
-        itempair.second = datamodel->get_value_at(1, row, error);
-#endif
 
       list_values.push_back(itempair);
     }
@@ -878,7 +859,6 @@ bool Utils::file_exists(const Glib::ustring& uri)
     // Try to examine the input file.
     Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(uri);
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       return file->query_exists();
@@ -887,9 +867,6 @@ bool Utils::file_exists(const Glib::ustring& uri)
     {
       return false; //Something went wrong. It does not exist.
     }
-#else
-      return file->query_exists();
-#endif
   }
 }
 
diff --git a/glom/main.cc b/glom/main.cc
index ad2333e..f9ee085 100644
--- a/glom/main.cc
+++ b/glom/main.cc
@@ -450,61 +450,28 @@ main(int argc, char* argv[])
   PySys_SetArgv(argc, argv);
 
   std::auto_ptr<Gtk::Main> mainInstance;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED  
-  try
-#endif  
+  try 
   {
     mainInstance = std::auto_ptr<Gtk::Main>( new Gtk::Main(argc, argv, context) );
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED  
   catch(const Glib::Error& ex)
   {
     std::cerr << "Glom: Error while initializing gtkmm: " << ex.what() << std::endl;
     return 0;
-  }
-#else
-  if (!mainInstance.get())
-  {
-    std::cerr << "Glom: Error while initializing gtkmm" << std::endl;
-    return 0;
-  }
-#endif      
+  }    
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#else
-  std::auto_ptr<Glib::Error> error;
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     context.parse(argc, argv);
-#else
-    context.parse(argc, argv, error);
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Glib::OptionError& ex)
-#else
-  if(error.get())
-#endif
   {
-#ifndef GLIBMM_EXCEPTIONS_ENABLED
-    const Glib::OptionError* exptr = dynamic_cast<Glib::OptionError*>(error.get());
-    if(exptr)
-    {
-      const Glib::OptionError& ex = *exptr;
-#endif // !GLIBMM_EXCEPTIONS_ENABLED
       std::cout << _("Error while parsing command-line options: ") << std::endl << ex.what() << std::endl;
       std::cout << _("Use --help to see a list of available command-line options.") << std::endl;
       return 0;
-#ifndef GLIBMM_EXCEPTIONS_ENABLED
-    }
-    const Glib::Error& ex = *error.get();
-#else
   }
   catch(const Glib::Error& ex)
   {
-#endif
     std::cout << "Error: " << ex.what() << std::endl;
     return 0;
   }
@@ -516,9 +483,7 @@ main(int argc, char* argv[])
     return 0;
   }
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#endif
   {
 #ifndef GLOM_ENABLE_CLIENT_ONLY
     gtksourceview::init();
@@ -643,7 +608,6 @@ main(int argc, char* argv[])
     delete pApplication;
     pApplication = 0;
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Glib::Exception& ex)
   {
     //If this happens then comment out the try/catch, and let the debugger show the call stack.
@@ -654,7 +618,6 @@ main(int argc, char* argv[])
     //If this happens then comment out the try/catch, and let the debugger show the call stack.
     std::cerr << "Glom: exception: \n  " << ex.what() << std::endl;
   }
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 
   Glom::libglom_deinit();
 
diff --git a/glom/mode_data/box_data.cc b/glom/mode_data/box_data.cc
index 577b7a3..be240a6 100644
--- a/glom/mode_data/box_data.cc
+++ b/glom/mode_data/box_data.cc
@@ -368,14 +368,7 @@ void Box_Data::execute_button_script(const sharedptr<const LayoutItem_Button>& l
   const type_map_fields field_values = get_record_field_values_for_calculation(m_table_name, field_primary_key, primary_key_value);
 
   //We need the connection when we run the script, so that the script may use it.
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> sharedconnection = connect_to_server(0 /* parent window */);
-#else
-  std::auto_ptr<ExceptionConnection> error;
-  sharedptr<SharedConnection> sharedconnection = connect_to_server(0 /* parent window */, error);
-  if(!error.get())
-  {
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 
     //Allow this UI to respond to UI change requests from the Python code:
     AppPythonUICallbacks callbacks;
@@ -388,9 +381,6 @@ void Box_Data::execute_button_script(const sharedptr<const LayoutItem_Button>& l
       sharedconnection->get_gda_connection(),
       callbacks,
       error_message);
-#ifndef GLIBMM_EXCEPTIONS_ENABLED
-  }
-#endif // !GLIBMM_EXCEPTIONS_ENABLED
 }
 
 } //namespace Glom
diff --git a/glom/mode_data/box_data_calendar_related.cc b/glom/mode_data/box_data_calendar_related.cc
index c812c72..62775c1 100644
--- a/glom/mode_data/box_data_calendar_related.cc
+++ b/glom/mode_data/box_data_calendar_related.cc
@@ -214,26 +214,14 @@ bool Box_Data_Calendar_Related::fill_from_database()
        continue;
 
       //Get the date value for this row:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       Gnome::Gda::Value value_date = datamodel->get_value_at(m_query_column_date_field, row_index);
-#else
-      std::auto_ptr<Glib::Error> error;
-      Gnome::Gda::Value value_date = datamodel->get_value_at(m_query_column_date_field, row_index, error);
-#endif
       const Glib::Date date = value_date.get_date();
 
       //Get all the values for this row:
       type_vector_values* pVector = new type_vector_values(m_FieldsShown.size());
       for(int column_index = 0; column_index < columns_count; ++column_index)
       {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         (*pVector)[column_index] = datamodel->get_value_at(column_index, row_index);
-#else
-        std::auto_ptr<Glib::Error> error;
-          (*pVector)[column_index] = datamodel->get_value_at(column_index, row_index, error);
-        if (error.get())
-          break;
-#endif
       }
 
       m_map_values[date].push_back(pVector);
@@ -524,10 +512,8 @@ void Box_Data_Calendar_Related::setup_menu()
 
   //TODO: add_accel_group(m_refUIManager->get_accel_group());
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-#endif
     Glib::ustring ui_info =
         "<ui>"
         "  <popup name='ContextMenu'>"
@@ -538,21 +524,12 @@ void Box_Data_Calendar_Related::setup_menu()
         "  </popup>"
         "</ui>";
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_refUIManager->add_ui_from_string(ui_info);
   }
   catch(const Glib::Error& ex)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  m_refUIManager->add_ui_from_string(ui_info, error);
-  if(error.get())
-  {
-    std::cerr << "building menus failed: " << error->what();
-  }
-#endif //GLIBMM_EXCEPTIONS_ENABLED
 
   //Get the menu:
   m_pMenuPopup = dynamic_cast<Gtk::Menu*>( m_refUIManager->get_widget("/ContextMenu") );
diff --git a/glom/mode_data/box_data_details.cc b/glom/mode_data/box_data_details.cc
index a7987e5..17facd6 100644
--- a/glom/mode_data/box_data_details.cc
+++ b/glom/mode_data/box_data_details.cc
@@ -270,7 +270,6 @@ bool Box_Data_Details::fill_from_database()
   //reconnect many times..
   sharedptr<SharedConnection> sharedconnection;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     sharedconnection = connect_to_server(get_app_window());
@@ -285,15 +284,6 @@ bool Box_Data_Details::fill_from_database()
     handle_error(ex);
     bResult = false;
   }
-#else
-  std::auto_ptr<ExceptionConnection> error;
-  sharedconnection = connect_to_server(get_app_window(), error);
-  if(error.get())
-  {
-    handle_error(*error);
-    bResult = false;
-  }
-#endif
 
   if(sharedconnection)
   {
@@ -381,14 +371,7 @@ bool Box_Data_Details::fill_from_database()
             {
               if(index_primary_key < cols_count)
               {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
                 m_primary_key_value = result->get_value_at(index_primary_key, row_number);
-#else
-              {
-                std::auto_ptr<Glib::Error> value_error;
-                m_primary_key_value = result->get_value_at(index_primary_key, row_number, value_error);
-              }
-#endif
                 set_found_set_from_primary_key_value();
               }
             }
@@ -402,14 +385,7 @@ bool Box_Data_Details::fill_from_database()
               Gnome::Gda::Value value;
 
               if(!primary_key_is_empty)
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
                 value = result->get_value_at(i, row_number);
-#else
-              {
-                std::auto_ptr<Glib::Error> value_error;
-                value = result->get_value_at(i, row_number, value_error);
-              }
-#endif
               else
               {
                 value = Conversions::get_empty_value(layout_item->get_glom_type());
@@ -818,13 +794,10 @@ void Box_Data_Details::on_flowtable_field_edited(const sharedptr<const LayoutIte
     //Update the field in the record (the record with this primary key):
 
     bool bTest = false;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     {
       bTest = set_field_value_in_database(field_in_record, field_value, false /* don't use current calculations */, get_app_window());
     }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     catch(const Glib::Exception& ex)
     {
       handle_error(ex);
@@ -833,11 +806,8 @@ void Box_Data_Details::on_flowtable_field_edited(const sharedptr<const LayoutIte
     {
       handle_error(ex);
     }
-#endif // GLIBMM_EXCEPTIONS_ENABLED
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     {
       if(!bTest)
       {
@@ -871,7 +841,6 @@ void Box_Data_Details::on_flowtable_field_edited(const sharedptr<const LayoutIte
       }
 
     }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     catch(const Glib::Exception& ex)
     {
       handle_error(ex);
@@ -880,7 +849,6 @@ void Box_Data_Details::on_flowtable_field_edited(const sharedptr<const LayoutIte
     {
       handle_error(ex);
     }
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
   else
   {
diff --git a/glom/mode_data/box_data_list.cc b/glom/mode_data/box_data_list.cc
index c781bf9..57e72c5 100644
--- a/glom/mode_data/box_data_list.cc
+++ b/glom/mode_data/box_data_list.cc
@@ -112,7 +112,6 @@ bool Box_Data_List::fill_from_database()
 
   sharedptr<SharedConnection> sharedconnection;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     sharedconnection = connect_to_server(get_app_window());
@@ -127,15 +126,6 @@ bool Box_Data_List::fill_from_database()
     handle_error(ex);
     result = false;
   }
-#else
-  std::auto_ptr<ExceptionConnection> error;
-  sharedconnection = connect_to_server(get_app_window(), error);
-  if(error.get())
-  {
-    handle_error(*error);
-    result = false;
-  }
-#endif
 
   if(sharedconnection)
   {
diff --git a/glom/mode_data/box_data_portal.cc b/glom/mode_data/box_data_portal.cc
index 12c8cc6..8b90f4d 100644
--- a/glom/mode_data/box_data_portal.cc
+++ b/glom/mode_data/box_data_portal.cc
@@ -64,11 +64,6 @@ Box_Data_Portal::Box_Data_Portal()
   m_layout_name = "list_portal"; //Replaced by derived classes.
 
   #ifdef GLOM_ENABLE_MAEMO
-  #ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_realize().connect(sigc::mem_fun(*this, &Box_Data_Portal::on_realize));
-  signal_unrealize().connect(sigc::mem_fun(*this, &Box_Data_Portal::on_unrealize));
-  #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-
   m_maemo_appmenubutton_add.signal_clicked().connect(
     sigc::mem_fun(*this, &Box_Data_Portal::on_maemo_appmenubutton_add));
   #endif //GLOM_ENABLE_MAEMO
@@ -523,12 +518,7 @@ void Box_Data_Portal::get_suitable_record_to_view_details(const Gnome::Gda::Valu
   {
     //Set the output parameters:
     table_name = navigation_table_name;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     table_primary_key_value = data_model->get_value_at(0, 0);
-#else
-    std::auto_ptr<Glib::Error> error;
-    table_primary_key_value = data_model->get_value_at(0, 0, error);
-#endif
     //std::cout << "Box_Data_Portal::get_suitable_record_to_view_details(): table_primary_key_value=" << table_primary_key_value.to_string() << std::endl;
 
     //The value is empty when there there is no record to match the key in the related table:
diff --git a/glom/mode_data/datawidget/combo.cc b/glom/mode_data/datawidget/combo.cc
index 49ec46e..f3fe95e 100644
--- a/glom/mode_data/datawidget/combo.cc
+++ b/glom/mode_data/datawidget/combo.cc
@@ -74,16 +74,6 @@ void ComboGlom::init()
   column->pack_start(m_Columns.m_col_first, false);
   #endif //GLOM_ENABLE_MAEMO
 
-
-
-  #ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  #ifndef GLOM_ENABLE_MAEMO
-  signal_changed().connect(sigc::mem_fun(*this, &ComboGlom::on_changed));
-  #else
-  m_maemo_selector.signal_changed().connect(sigc::mem_fun(*this, &ComboGlom::on_changed));
-  #endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  #endif //GLOM_ENABLE_MAEMO
-
   if(m_with_second)
   {
     #ifndef GLOM_ENABLE_MAEMO
@@ -99,12 +89,8 @@ void ComboGlom::init()
     pack_start(*cell_second);
 
     //Make the renderer render the column:
-    #ifdef GLIBMM_PROPERTIES_ENABLED
     add_attribute(cell_second->_property_renderable(), m_Columns.m_col_second);
     #else
-    add_attribute(*cell_second, cell_second->_property_renderable(), m_Columns.m_col_second);
-    #endif
-    #else
     //Maemo:
     column->pack_start(m_Columns.m_col_second);
     #endif //GLOM_ENABLE_MAEMO
@@ -293,10 +279,8 @@ void ComboGlom::on_changed()
 void ComboGlom::on_changed(int /* column */)
 #endif 
 {
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Call base class:
   Gtk::ComboBox::on_changed();
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 
   //This signal is emitted for every key press, but sometimes it's just to say that the active item has changed to "no active item",
   //if the text is not in the dropdown list:
diff --git a/glom/mode_data/datawidget/comboentry.cc b/glom/mode_data/datawidget/comboentry.cc
index af30e37..d062264 100644
--- a/glom/mode_data/datawidget/comboentry.cc
+++ b/glom/mode_data/datawidget/comboentry.cc
@@ -116,14 +116,6 @@ void ComboEntry::init()
   get_entry()->signal_focus_out_event().connect(sigc::mem_fun(*this, &ComboEntry::on_entry_focus_out_event), false);
   get_entry()->signal_activate().connect(sigc::mem_fun(*this, &ComboEntry::on_entry_activate));
 
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  #ifndef GLOM_ENABLE_MAEMO
-  signal_changed().connect(sigc::mem_fun(*this, &ComboEntry::on_changed));
-  #else
-  m_maemo_selector.signal_changed().connect(sigc::mem_fun(*this, &ComboEntry::on_changed));
-  #endif
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-
   if(m_with_second)
   {
     #ifndef GLOM_ENABLE_MAEMO
@@ -139,11 +131,7 @@ void ComboEntry::init()
     pack_start(*cell_second);
 
     //Make the renderer render the column:
-    #ifdef GLIBMM_PROPERTIES_ENABLED
     add_attribute(cell_second->_property_renderable(), m_Columns.m_col_second);
-    #else
-    add_attribute(*cell_second, cell_second->_property_renderable(), m_Columns.m_col_second);
-    #endif
     #else //GLOM_ENABLE_MAEMO
     column->pack_start(m_Columns.m_col_second, false);
     #endif //GLOM_ENABLE_MAEMO
@@ -351,10 +339,8 @@ void ComboEntry::on_changed()
 void ComboEntry::on_changed(int /* column */)
 #endif 
 {
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Call base class:
   Gtk::ComboBoxEntry::on_changed();
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 
   //This signal is emitted for every key press, but sometimes it's just to say that the active item has changed to "no active item",
   //if the text is not in the dropdown list:
diff --git a/glom/mode_data/datawidget/entry.cc b/glom/mode_data/datawidget/entry.cc
index f5bb440..5a3de40 100644
--- a/glom/mode_data/datawidget/entry.cc
+++ b/glom/mode_data/datawidget/entry.cc
@@ -72,11 +72,6 @@ Entry::~Entry()
 
 void Entry::init()
 {
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_focus_out_event().connect(sigc::mem_fun(*this, &Entry::on_focus_out_event));
-  signal_activate().connect(sigc::mem_fun(*this, &Entry::on_activate));
-  signal_changed().connect(sigc::mem_fun(*this, &Entry::on_changed));
-#endif // !GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 }
 
 void Entry::set_layout_item(const sharedptr<LayoutItem>& layout_item, const Glib::ustring& table_name)
@@ -134,15 +129,9 @@ void Entry::check_for_change()
   }
 }
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 bool Entry::on_focus_out_event(GdkEventFocus* event)
 {
   const bool result = Gtk::Entry::on_focus_out_event(event);
-#else
-bool Entry::on_focus_out_event(GdkEventFocus* /* event */)
-{
-  const bool result = false;
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 
   //The user has finished editing.
   check_for_change();
@@ -153,10 +142,8 @@ bool Entry::on_focus_out_event(GdkEventFocus* /* event */)
 
 void Entry::on_activate()
 {
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Call base class:
   Gtk::Entry::on_activate();
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 
   //The user has finished editing.
   check_for_change();
@@ -166,10 +153,8 @@ void Entry::on_changed()
 {
   //The text is being edited, but the user has not finished yet.
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Call base class:
   Gtk::Entry::on_changed();
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 }
 
 void Entry::set_value(const Gnome::Gda::Value& value)
diff --git a/glom/mode_data/datawidget/entry.h b/glom/mode_data/datawidget/entry.h
index dc11877..360e5b5 100644
--- a/glom/mode_data/datawidget/entry.h
+++ b/glom/mode_data/datawidget/entry.h
@@ -74,8 +74,6 @@ private:
   void init();
 
   //Overrides of default signal handlers:
-  //Note that these don't override anything when GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  //is not defined. These are normal signal handlers then.
   virtual void on_changed(); //From Gtk::Entry.
   virtual void on_activate(); //From Gtk::Entry.
   virtual bool on_focus_out_event(GdkEventFocus* event); //From Gtk::Widget
diff --git a/glom/mode_data/datawidget/textview.cc b/glom/mode_data/datawidget/textview.cc
index ee2cc98..e1cb63a 100644
--- a/glom/mode_data/datawidget/textview.cc
+++ b/glom/mode_data/datawidget/textview.cc
@@ -111,16 +111,10 @@ void TextView::check_for_change()
   }
 }
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 bool TextView::on_textview_focus_out_event(GdkEventFocus* event)
 {
   //Call base class:
   bool result = Gtk::ScrolledWindow::on_focus_out_event(event);
-#else
-bool TextView::on_textview_focus_out_event(GdkEventFocus* /* event */)
-{
-  bool result = false;
-#endif
 
   //The user has finished editing.
   check_for_change();
diff --git a/glom/mode_data/flowtablewithfields.cc b/glom/mode_data/flowtablewithfields.cc
index 2707d2d..f20d375 100644
--- a/glom/mode_data/flowtablewithfields.cc
+++ b/glom/mode_data/flowtablewithfields.cc
@@ -52,13 +52,6 @@ FlowTableWithFields::Info::Info()
 
 FlowTableWithFields::FlowTableWithFields(const Glib::ustring& table_name)
 :
-#if !defined(GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED)
-  // This creates a custom GType for us, to override vfuncs and default
-  // signal handlers even with the reduced API (done in flowtable.cc).
-  // TODO: It is necessary to do this in all derived classes which is
-  // rather annoying, though I don't see another possibility at the moment. armin.
-  Glib::ObjectBase("Glom_FlowTable"),
-#endif // !defined(GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED)
   m_placeholder(0),
   m_table_name(table_name)
 {
diff --git a/glom/mode_data/notebook_data.cc b/glom/mode_data/notebook_data.cc
index 6ab4c67..0176cfb 100644
--- a/glom/mode_data/notebook_data.cc
+++ b/glom/mode_data/notebook_data.cc
@@ -137,13 +137,7 @@ bool Notebook_Data::init_db_details(const FoundSet& found_set, const Gnome::Gda:
   //Performance optimisation:
   //Keep the connection open during all these operations:
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     sharedptr<SharedConnection> sharedconnection = connect_to_server(get_app_window());
-#else
-    std::auto_ptr<ExceptionConnection> error;
-    sharedptr<SharedConnection> sharedconnection = connect_to_server(get_app_window(), error);
-    // Ignore error, sharedconnection is not used directly within this function
-#endif
 
     result = m_Box_List.init_db_details(found_set, get_active_layout_platform(get_document())); //TODO: Select the last selected record.
 
diff --git a/glom/mode_data/placeholder-glom.cc b/glom/mode_data/placeholder-glom.cc
index f938fdc..321f74f 100644
--- a/glom/mode_data/placeholder-glom.cc
+++ b/glom/mode_data/placeholder-glom.cc
@@ -36,13 +36,6 @@ PlaceholderGlom::PlaceholderGlom() :
   Gtk::Widget()
 {
   set_has_window(false);
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_realize().connect(sigc::mem_fun(*this, &PlaceholderGlom::on_realize));
-  signal_unrealize().connect(sigc::mem_fun(*this, &PlaceholderGlom::on_unrealize));
-  signal_expose_event().connect(sigc::mem_fun(*this, &PlaceholderGlom::on_expose_event));
-  signal_size_request().connect(sigc::mem_fun(*this, &PlaceholderGlom::on_size_request));
-  signal_size_allocate().connect(sigc::mem_fun(*this, &PlaceholderGlom::on_size_allocate));
-#endif
 }
 
 PlaceholderGlom::~PlaceholderGlom()
@@ -82,9 +75,7 @@ void PlaceholderGlom::on_size_allocate(Gtk::Allocation& allocation)
 void PlaceholderGlom::on_realize()
 {
   //Call base class:
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   Gtk::Widget::on_realize();
-#endif
 
   ensure_style();
 
@@ -124,9 +115,7 @@ void PlaceholderGlom::on_realize()
 void PlaceholderGlom::on_unrealize()
 {
   m_refGdkWindow.reset();
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   Gtk::Widget::on_unrealize();
-#endif
 }
 
 bool PlaceholderGlom::on_expose_event(GdkEventExpose* event)
diff --git a/glom/mode_design/iso_codes.cc b/glom/mode_design/iso_codes.cc
index 6272a23..10e7715 100644
--- a/glom/mode_design/iso_codes.cc
+++ b/glom/mode_design/iso_codes.cc
@@ -106,7 +106,6 @@ Glib::ustring get_locale_name(const Glib::ustring& locale_id)
     type_list_ids list_ids;
 
     Glib::ustring locales_path = "/usr/share/i18n/locales/";
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       Glib::Dir dir(locales_path);
@@ -116,20 +115,6 @@ Glib::ustring get_locale_name(const Glib::ustring& locale_id)
     {
       std::cerr << "Glom: get_locale_name(): Could not open (or read) glibc locales directory: " << locales_path << "Error: " << ex.what() << std::endl;
     }
-#else
-    GError* error;
-    GDir* dir = g_dir_open(locales_path.c_str(), 0, &error);
-    if(!error)
-    {
-      Glib::Dir dir_cpp(dir);
-      list_ids = type_list_ids(dir_cpp.begin(), dir_cpp.end());
-    }
-    else
-    {
-      std::cerr << "Glom: get_locale_name(): Could not open (or read) glibc locales directory: " << locales_path << "Error: " << error->message << std::endl;
-      g_error_free(error);
-    }
-#endif
 
     //Get the (translated) language names:
     typedef std::map<Glib::ustring, Glib::ustring> type_map_language; //ID to language name.
diff --git a/glom/mode_design/print_layouts/window_print_layout_edit.cc b/glom/mode_design/print_layouts/window_print_layout_edit.cc
index 1554bdb..f96c641 100644
--- a/glom/mode_design/print_layouts/window_print_layout_edit.cc
+++ b/glom/mode_design/print_layouts/window_print_layout_edit.cc
@@ -618,10 +618,8 @@ void Window_PrintLayout_Edit::setup_context_menu()
   m_context_menu_uimanager = Gtk::UIManager::create();
   m_context_menu_uimanager->insert_action_group(m_context_menu_action_group);
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-  #endif
     Glib::ustring ui_info = 
       "<ui>"
       "  <popup name='ContextMenu'>"
@@ -632,21 +630,12 @@ void Window_PrintLayout_Edit::setup_context_menu()
       "  </popup>"
       "</ui>";
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_context_menu_uimanager->add_ui_from_string(ui_info);
   }
   catch(const Glib::Error& ex)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-  #else
-  std::auto_ptr<Glib::Error> error;
-  m_context_menu_uimanager->add_ui_from_string(ui_info, error);
-  if(error.get())
-  {
-    std::cerr << "building menus failed: " << error->what();
-  }
-  #endif
 
   //Get the menu:
   m_context_menu = dynamic_cast<Gtk::Menu*>( m_context_menu_uimanager->get_widget("/ContextMenu") ); 
diff --git a/glom/mode_design/relationships_overview/dialog_relationships_overview.cc b/glom/mode_design/relationships_overview/dialog_relationships_overview.cc
index 4e70d76..2cedd08 100644
--- a/glom/mode_design/relationships_overview/dialog_relationships_overview.cc
+++ b/glom/mode_design/relationships_overview/dialog_relationships_overview.cc
@@ -70,10 +70,8 @@ Dialog_RelationshipsOverview::Dialog_RelationshipsOverview(BaseObjectType* cobje
   m_refUIManager->insert_action_group(m_refActionGroup);
   add_accel_group(m_refUIManager->get_accel_group());
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-  #endif
     static const Glib::ustring ui_description =
     "<ui>"
 #ifdef GLOM_ENABLE_MAEMO
@@ -95,21 +93,12 @@ Dialog_RelationshipsOverview::Dialog_RelationshipsOverview(BaseObjectType* cobje
 #endif
     "</ui>";
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_refUIManager->add_ui_from_string(ui_description);
   }
   catch(const Glib::Error& ex)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-  #else
-  std::auto_ptr<Glib::Error> error;
-  m_refUIManager->add_ui_from_string(ui_info, error);
-  if(error.get())
-  {
-    std::cerr << "building menus failed: " << error->what();
-  }
-  #endif
 
   //Get the menu:
   m_menu = dynamic_cast<Gtk::MenuBar*>( m_refUIManager->get_widget("/Overview_MainMenu") ); 
@@ -497,10 +486,8 @@ void Dialog_RelationshipsOverview::setup_context_menu()
   m_context_menu_uimanager = Gtk::UIManager::create();
   m_context_menu_uimanager->insert_action_group(m_context_menu_action_group);
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-  #endif
     Glib::ustring ui_info = 
     "<ui>"
     "  <popup name='ContextMenu'>"
@@ -509,21 +496,12 @@ void Dialog_RelationshipsOverview::setup_context_menu()
     "  </popup>"
     "</ui>";
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_context_menu_uimanager->add_ui_from_string(ui_info);
   }
   catch(const Glib::Error& ex)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-  #else
-  std::auto_ptr<Glib::Error> error;
-  m_context_menu_uimanager->add_ui_from_string(ui_info, error);
-  if(error.get())
-  {
-    std::cerr << "building menus failed: " << error->what();
-  }
-  #endif
 
   //Get the menu:
   m_context_menu = dynamic_cast<Gtk::Menu*>( m_context_menu_uimanager->get_widget("/ContextMenu") ); 
diff --git a/glom/navigation/box_tables.cc b/glom/navigation/box_tables.cc
index 9932c58..ea57deb 100644
--- a/glom/navigation/box_tables.cc
+++ b/glom/navigation/box_tables.cc
@@ -151,13 +151,7 @@ bool Box_Tables::fill_from_database()
     g_warning("Box_Tables::fill_from_database(): document is null");
 
   //Get the list of tables in the database, from the server:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> sharedconnection = connect_to_server(Application::get_application());
-#else
-  std::auto_ptr<ExceptionConnection> error;
-  sharedptr<SharedConnection> sharedconnection = connect_to_server(Application::get_application(), error);
-  // Ignore error because sharedconnection presence is checked below.
-#endif
 
   if(sharedconnection)
   {
diff --git a/glom/notebook_glom.cc b/glom/notebook_glom.cc
index 0ab4e79..5d2f899 100644
--- a/glom/notebook_glom.cc
+++ b/glom/notebook_glom.cc
@@ -35,12 +35,6 @@ Notebook_Glom::Notebook_Glom()
   //signal_leave_page().connect(sigc::mem_fun(*this, &Notebook_Glom::on_leave_page));
 
   m_destructor_in_progress = false;
-
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_show().connect(sigc::mem_fun(*this, &Notebook_Glom::on_show));
-#endif  
-  
-
 }
 
 Notebook_Glom::~Notebook_Glom()
@@ -49,9 +43,7 @@ Notebook_Glom::~Notebook_Glom()
 
 void Notebook_Glom::on_show()
 {
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   Gtk::Notebook::on_show();
-#endif  
 
   //We do this only in on_show() because otherwise GtkNotebook emits the signal (and we catch it) during show:
   if(!m_connection_switch_page)
diff --git a/glom/print_layout/canvas_layout_item.cc b/glom/print_layout/canvas_layout_item.cc
index c1f6aba..19cb173 100644
--- a/glom/print_layout/canvas_layout_item.cc
+++ b/glom/print_layout/canvas_layout_item.cc
@@ -86,11 +86,7 @@ void CanvasLayoutItem::apply_formatting(const Glib::RefPtr<CanvasTextMovable>& c
   const FieldFormatting::HorizontalAlignment alignment =
     layout_item->get_formatting_used_horizontal_alignment();
   const Pango::Alignment x_align = (alignment == FieldFormatting::HORIZONTAL_ALIGNMENT_LEFT ? Pango::ALIGN_LEFT : Pango::ALIGN_RIGHT);
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   canvas_item->property_alignment() = x_align;
-#else    
-  canvas_item->set_property("alignment", alignment);
-#endif
 
   const FieldFormatting& formatting = layout_item->get_formatting_used();
 
@@ -113,21 +109,13 @@ void CanvasLayoutItem::apply_formatting(const Glib::RefPtr<CanvasTextMovable>& c
   const Glib::ustring fg = formatting.get_text_format_color_foreground();
   if(!fg.empty())
   {
-    #ifdef GLIBMM_PROPERTIES_ENABLED
     canvas_item->property_stroke_color() = fg;
-    #else
-    canvas_item->set_property("stroke-color", fg);
-    #endif
   }
 
   const Glib::ustring bg = formatting.get_text_format_color_background();
   if(!bg.empty())
   {
-    #ifdef GLIBMM_PROPERTIES_ENABLED
     canvas_item->property_fill_color() = bg;
-    #else
-    canvas_item->set_property("fill-color", bg);
-    #endif
   }
 }
 
@@ -209,11 +197,7 @@ Glib::RefPtr<CanvasItemMovable> CanvasLayoutItem::create_canvas_item_for_layout_
   if(text)
   {
     Glib::RefPtr<CanvasTextMovable> canvas_item = CanvasTextMovable::create();
-    #ifdef GLIBMM_PROPERTIES_ENABLED
     canvas_item->property_line_width() = 0;
-    #else
-    canvas_item->set_property("line-width", 0);
-    #endif
 
     apply_formatting(canvas_item, text);
 
@@ -233,11 +217,7 @@ Glib::RefPtr<CanvasItemMovable> CanvasLayoutItem::create_canvas_item_for_layout_
       else
         canvas_item->set_image_empty(); //show a no-image picture.
 
-      #ifdef GLIBMM_PROPERTIES_ENABLED
       canvas_item->property_fill_color() = "white"; //This makes the whole area clickable, not just the outline stroke.
-      #else
-      canvas_item->set_property("fill-color", Glib::ustring("white")); //This makes the whole area clickable, not just the outline stroke.
-      #endif
 
       child = canvas_item;
       child_item = canvas_item;
@@ -254,22 +234,13 @@ Glib::RefPtr<CanvasItemMovable> CanvasLayoutItem::create_canvas_item_for_layout_
         line->get_coordinates(start_x, start_y, end_x, end_y);
         
         Glib::RefPtr<CanvasLineMovable> canvas_item = CanvasLineMovable::create();
-        #ifdef GLIBMM_PROPERTIES_ENABLED
         canvas_item->property_line_width() = 1;
         canvas_item->property_stroke_color() = "black";
-        #else
-        canvas_item->set_property("line-width", 1);
-        canvas_item->set_property("stroke-color", Glib::ustring("black"));
-        #endif
 
         Goocanvas::Points points(2);
         points.set_coordinate(0, start_x, start_y);
         points.set_coordinate(0, end_x, end_y);
-        #ifdef GLIBMM_PROPERTIES_ENABLED
         canvas_item->property_points() = points;
-        #else
-        canvas_item->set_property("points", points);
-        #endif
         child = canvas_item;
         child_item = canvas_item;
       }
@@ -290,11 +261,7 @@ Glib::RefPtr<CanvasItemMovable> CanvasLayoutItem::create_canvas_item_for_layout_
           else //text, numbers, date, time, boolean:
           {
             Glib::RefPtr<CanvasTextMovable> canvas_item = CanvasTextMovable::create();
-            #ifdef GLIBMM_PROPERTIES_ENABLED
             canvas_item->property_line_width() = 0;
-            #else
-            canvas_item->set_property("line-width", 0);
-            #endif
          
             apply_formatting(canvas_item, field);
 
@@ -314,15 +281,9 @@ Glib::RefPtr<CanvasItemMovable> CanvasLayoutItem::create_canvas_item_for_layout_
           if(portal)
           {
             Glib::RefPtr<CanvasTableMovable> canvas_item = CanvasTableMovable::create();
-            #ifdef GLIBMM_PROPERTIES_ENABLED
             canvas_item->property_vert_grid_line_width() = 1;
             canvas_item->property_horz_grid_line_width() = 1;
             canvas_item->property_stroke_color() = "black";
-            #else
-            canvas_item->set_property("vert-grid-line-width", 1);
-            canvas_item->set_property("horz-grid-line-width", 1);
-            canvas_item->set_property("stroke-color", Glib::ustring("black"));
-            #endif
 
             //Show as many rows as can fit in the height.
             double row_height = 0;
@@ -481,11 +442,7 @@ void CanvasLayoutItem::remove_empty_indicators()
     if(canvas_image->get_image_empty())
     {
       Glib::RefPtr<Gdk::Pixbuf> really_empty;
-      #ifdef GLIBMM_PROPERTIES_ENABLED
       canvas_image->property_pixbuf() = really_empty;
-      #else
-      canvas_image->set_property("pixbuf", really_empty);
-      #endif
     }
   }
 }
diff --git a/glom/print_layout/canvas_print_layout.cc b/glom/print_layout/canvas_print_layout.cc
index d07aeaa..d5391c9 100644
--- a/glom/print_layout/canvas_print_layout.cc
+++ b/glom/print_layout/canvas_print_layout.cc
@@ -55,11 +55,7 @@ Canvas_PrintLayout::Canvas_PrintLayout()
 
   //Use millimeters, because that's something that is meaningful to the user,
   //and we can use it with Gtk::PageSetup too:
-  #ifdef GLIBMM_PROPERTIES_ENABLED
   property_units() = Gtk::UNIT_MM;
-  #else
-  set_property("units", Gtk::UNIT_MM);
-  #endif
 
   m_items_group = Goocanvas::Group::create();
   //m_items_group->signal_button_press_event().connect( sigc::ptr_fun(&on_group_button_press_event), false );
@@ -91,13 +87,8 @@ void Canvas_PrintLayout::set_print_layout(const Glib::ustring& table_name, const
   {
     Glib::KeyFile key_file;
     
-    #ifdef GLIBMM_EXCEPTIONS_ENABLED
     //TODO: Catch an exception
     key_file.load_from_data(key_file_text);
-    #else
-    std::auto_ptr<Glib::Error> ex;
-    key_file.load_from_data(key_file_text, Glib::KEY_FILE_NONE, ex);
-    #endif
     
     //TODO: Use this when gtkmm and GTK+ have been fixed: page_setup = Gtk::PageSetup::create(key_file);
     page_setup = Glib::wrap(gtk_page_setup_new_from_key_file(key_file.gobj(), 0, 0));
@@ -118,13 +109,8 @@ sharedptr<PrintLayout> Canvas_PrintLayout::get_print_layout()
   m_page_setup->save_to_key_file(key_file);
  
   Glib::ustring data;
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   //TODO: Catch an exception
   data = key_file.to_data();
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  data = key_file.to_data(ex);
-  #endif
   
   result->set_page_setup(data);
 
@@ -268,10 +254,8 @@ void Canvas_PrintLayout::setup_context_menu()
   m_context_menu_uimanager = Gtk::UIManager::create();
   m_context_menu_uimanager->insert_action_group(m_context_menu_action_group);
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-  #endif
     Glib::ustring ui_info = 
       "<ui>"
       "  <popup name='ContextMenu'>"
@@ -281,21 +265,12 @@ void Canvas_PrintLayout::setup_context_menu()
       "  </popup>"
       "</ui>";
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_context_menu_uimanager->add_ui_from_string(ui_info);
   }
   catch(const Glib::Error& ex)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-  #else
-  std::auto_ptr<Glib::Error> error;
-  m_context_menu_uimanager->add_ui_from_string(ui_info, error);
-  if(error.get())
-  {
-    std::cerr << "building menus failed: " << error->what();
-  }
-  #endif
 
   //Get the menu:
   m_context_menu = dynamic_cast<Gtk::Menu*>( m_context_menu_uimanager->get_widget("/ContextMenu") ); 
@@ -473,13 +448,8 @@ Glib::RefPtr<Goocanvas::Polyline> Canvas_PrintLayout::create_margin_line(double
 {
   Glib::RefPtr<Goocanvas::Polyline> line = 
     Goocanvas::Polyline::create(x1, y1, x2, y2);
-  #ifdef GLIBMM_PROPERTIES_ENABLED
   line->property_line_width() = 0.5;
   line->property_stroke_color() = "light gray";
-  #else
-  line->set_property("line-width", 0.5);
-  line->set_property("stroke-color", Glib::ustring("light gray"));
-  #endif
 
   m_bounds_group->add_child(line);
   return line;
@@ -497,12 +467,7 @@ void Canvas_PrintLayout::set_page_setup(const Glib::RefPtr<Gtk::PageSetup>& page
   bounds.set_x1(0);
   bounds.set_y1(0);
 
-  #ifdef GLIBMM_PROPERTIES_ENABLED
   const Gtk::Unit units = property_units();
-  #else
-  Gtk::Unit units = Gtk::UNIT_MM;
-  get_property("units", units);
-  #endif
 
   //std::cout << "Canvas_PrintLayout::set_page_setup(): width=" << paper_size.get_width(units) << ", height=" paper_size.get_height(units) << std::endl;
 
@@ -522,11 +487,7 @@ void Canvas_PrintLayout::set_page_setup(const Glib::RefPtr<Gtk::PageSetup>& page
   set_bounds(bounds);
 
   //Show the bounds with a rectangle, because the scrolled window might contain extra empty space.
-  #ifdef GLIBMM_PROPERTIES_ENABLED
   property_background_color() = "light gray";
-  #else
-  set_property("background-color", Glib::ustring("light gray"));
-  #endif
   if(m_bounds_group)
   {
     m_bounds_group->remove();
@@ -539,13 +500,8 @@ void Canvas_PrintLayout::set_page_setup(const Glib::RefPtr<Gtk::PageSetup>& page
   
  
   m_bounds_rect = Goocanvas::Rect::create(bounds.get_x1(), bounds.get_y1(), bounds.get_x2(), bounds.get_y2());
-  #ifdef GLIBMM_PROPERTIES_ENABLED
   m_bounds_rect->property_fill_color() = "white";
   m_bounds_rect->property_line_width() = 0;
-  #else
-  m_bounds_rect->set_property("fill-color", Glib::ustring("white"));
-  m_bounds_rect->set_property("line-width", 0);
-  #endif
   m_bounds_group->add_child(m_bounds_rect);
 
   //Make sure that the bounds rect is at the bottom, 
@@ -632,12 +588,9 @@ void Canvas_PrintLayout::fill_with_data(const Glib::RefPtr<Goocanvas::Group>& ca
   
   bool records_found = false;
   Glib::RefPtr<Gnome::Gda::DataModel> datamodel;
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED //TODO: Catch the error somehow?
   try
   {
-  #endif
     datamodel = DbUtils::query_execute_select(sql_query);
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   }
   catch(const Glib::Exception& ex)
   {
@@ -647,7 +600,6 @@ void Canvas_PrintLayout::fill_with_data(const Glib::RefPtr<Goocanvas::Group>& ca
   {
     std::cout << "Canvas_PrintLayout::fill_with_data: exception: " << ex.what() << std::endl;
   }
-  #endif
 
   if(datamodel)
   {
@@ -681,13 +633,8 @@ void Canvas_PrintLayout::fill_with_data(const Glib::RefPtr<Goocanvas::Group>& ca
         //Set the data from the database:
         const guint col_index = iterFind->second;
 
-        #ifdef GLIBMM_EXCEPTIONS_ENABLED
         //TODO: Actually catch exception:
         const Gnome::Gda::Value value = datamodel->get_value_at(col_index, 0);
-        #else
-        std::auto_ptr<Glib::Error> ex;
-        const Gnome::Gda::Value value = datamodel->get_value_at(col_index, 0, ex);
-        #endif
         canvas_item->set_db_data(value);
       }
     }
@@ -771,13 +718,8 @@ void Canvas_PrintLayout::fill_with_data_portal(const Glib::RefPtr<CanvasLayoutIt
         Gnome::Gda::Value db_value;
         if( row < datamodel->get_n_rows() )
         {
-          #ifdef GLIBMM_EXCEPTIONS_ENABLED
           //TODO: Actually catch exception.
           db_value = datamodel->get_value_at(db_col, row);
-          #else
-          std::auto_ptr<Glib::Error> ex;
-          db_value = datamodel->get_value_at(db_col, row, ex);
-          #endif
         }
           
         set_canvas_item_field_value(canvas_child, field, db_value);
@@ -802,11 +744,7 @@ void Canvas_PrintLayout::set_canvas_item_field_value(const Glib::RefPtr<Goocanva
       return;
 
     Glib::RefPtr<Gdk::Pixbuf> pixbuf = Utils::get_pixbuf_for_gda_value(value);
-    #ifdef GLIBMM_PROPERTIES_ENABLED
     canvas_image->property_pixbuf() = pixbuf;
-    #else
-    canvas_image->set_property("pixbuf", pixbuf);
-    #endif
   }
   else //text, numbers, date, time, boolean:
   {
@@ -844,11 +782,7 @@ guint Canvas_PrintLayout::get_zoom_percent() const
 
 void Canvas_PrintLayout::hide_page_bounds()
 {
-  #ifdef GLIBMM_PROPERTIES_ENABLED
   m_bounds_group->property_visibility() = Goocanvas::ITEM_HIDDEN;
-  #else
-  m_bounds_group->set_property("visibility", Goocanvas::ITEM_HIDDEN);
-  #endif
 }
 
 void Canvas_PrintLayout::set_grid_gap(double gap)
diff --git a/glom/printoperation_printlayout.cc b/glom/printoperation_printlayout.cc
index aec90d9..7e97885 100644
--- a/glom/printoperation_printlayout.cc
+++ b/glom/printoperation_printlayout.cc
@@ -27,15 +27,6 @@ PrintOperationPrintLayout::PrintOperationPrintLayout()
   set_use_full_page(true); //Because we show the margins on our canvas.
 
   set_n_pages(1); //There is always at least one page.
-
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_begin_print().connect(
-    sigc::mem_fun(*this, &PrintOperationPrintLayout::on_begin_print));
-  signal_paginate().connect(
-    sigc::mem_fun(*this, &PrintOperationPrintLayout::on_paginate));
-  signal_draw_page().connect(
-    sigc::mem_fun(*this, &PrintOperationPrintLayout::on_draw_page));
-#endif
 }
 
 PrintOperationPrintLayout::~PrintOperationPrintLayout()
@@ -50,10 +41,8 @@ Glib::RefPtr<PrintOperationPrintLayout> PrintOperationPrintLayout::create()
 void PrintOperationPrintLayout::on_begin_print(
         const Glib::RefPtr<Gtk::PrintContext>& print_context)
 {
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Call base class:
   Gtk::PrintOperation::on_begin_print(print_context);
-#endif
 }
 
 bool PrintOperationPrintLayout::on_paginate(const Glib::RefPtr<Gtk::PrintContext>& print_context)
@@ -62,10 +51,8 @@ bool PrintOperationPrintLayout::on_paginate(const Glib::RefPtr<Gtk::PrintContext
 
   set_n_pages(1); //on_draw_page() will be called for any new pages.
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Call base class:
   Gtk::PrintOperation::on_paginate(print_context);
-#endif
 
   return true; //Pagination has finished. Don't call this again.
 }
@@ -86,10 +73,8 @@ void PrintOperationPrintLayout::on_draw_page(
   if(m_canvas)
     m_canvas->render(cairo_context);
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Call base class:
   Gtk::PrintOperation::on_draw_page(print_context, page_nr);
-#endif
 }
 
 void PrintOperationPrintLayout::set_canvas(Canvas_PrintLayout* canvas)
diff --git a/glom/report_builder.cc b/glom/report_builder.cc
index 2a3a644..1a6f9dd 100644
--- a/glom/report_builder.cc
+++ b/glom/report_builder.cc
@@ -196,12 +196,7 @@ void ReportBuilder::report_build_groupby(const FoundSet& found_set_parent, xmlpp
       guint rows_count = datamodel->get_n_rows();
       for(guint row = 0; row < rows_count; ++row)
       {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         const Gnome::Gda::Value group_value = datamodel->get_value_at(0 /* col*/, row);
-#else
-        std::auto_ptr<Glib::Error> error;
-        const Gnome::Gda::Value group_value = datamodel->get_value_at(0 /* col*/, row, error);
-#endif
 
 
         //Add XML node:
@@ -406,23 +401,13 @@ void ReportBuilder::report_build_records_field(const FoundSet& found_set, xmlpp:
     if(!datamodel)
       return;
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     value = datamodel->get_value_at(colField, row);
-#else
-    std::auto_ptr<Glib::Error> error;
-    value = datamodel->get_value_at(colField, row, error);
-#endif
     colField = 0;
     row = 0;
   }
   else
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     value = datamodel->get_value_at(colField, row);
-#else
-    std::auto_ptr<Glib::Error> error;
-    value = datamodel->get_value_at(colField, row, error);
-#endif
   }
 
   nodeField->set_attribute("title", field->get_title_or_name()); //Not always used, but useful.
@@ -575,7 +560,6 @@ void ReportBuilder::report_build(const FoundSet& found_set, const sharedptr<cons
     // not to be in glom, otherwise the code wouldn't compile with
     // -fno-exceptions. If it's in a library, it does not seem to take an
     // additional error paramater for that. armin.
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
       report_build_records(found_set, *nodeGroupBy, itemsToGet_TopLevel);
@@ -592,9 +576,6 @@ void ReportBuilder::report_build(const FoundSet& found_set, const sharedptr<cons
       handle_error(ex);
       return;
     }
-#else
-    report_build_records(found_set, *nodeGroupBy, itemsToGet_TopLevel);
-#endif
   }
 
   GlomXslUtils::transform_and_open(*pDocument, "print_report_to_html.xsl", parent_window);
diff --git a/glom/utility_widgets/adddel/adddel.cc b/glom/utility_widgets/adddel/adddel.cc
index 4849e85..20f7e74 100644
--- a/glom/utility_widgets/adddel/adddel.cc
+++ b/glom/utility_widgets/adddel/adddel.cc
@@ -254,10 +254,8 @@ void AddDel::setup_menu()
 
   //TODO: add_accel_group(m_refUIManager->get_accel_group());
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-#endif
     Glib::ustring ui_info = 
         "<ui>"
         "  <popup name='ContextMenu'>"
@@ -266,21 +264,12 @@ void AddDel::setup_menu()
         "  </popup>"
         "</ui>";
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_refUIManager->add_ui_from_string(ui_info);
   }
   catch(const Glib::Error& ex)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  m_refUIManager->add_ui_from_string(ui_info, error);
-  if(error.get())
-  {
-    std::cerr << "building menus failed: " << error->what();
-  }
-#endif //GLIBMM_EXCEPTIONS_ENABLED
 
   //Get the menu:
   m_pMenuPopup = dynamic_cast<Gtk::Menu*>( m_refUIManager->get_widget("/ContextMenu") ); 
diff --git a/glom/utility_widgets/canvas/canvas_group_grid.cc b/glom/utility_widgets/canvas/canvas_group_grid.cc
index 09052e5..a5ba5eb 100644
--- a/glom/utility_widgets/canvas/canvas_group_grid.cc
+++ b/glom/utility_widgets/canvas/canvas_group_grid.cc
@@ -169,23 +169,12 @@ void CanvasGroupGrid::snap_position(double& x, double& y) const
 Glib::RefPtr<Goocanvas::Polyline> CanvasGroupGrid::create_grid_or_rule_line(double x1, double y1, double x2, double y2, bool is_rule)
 {
   Glib::RefPtr<Goocanvas::Polyline> line = Goocanvas::Polyline::create(x1, y1, x2, y2);
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   line->property_line_width() = 1.0f;
-#else
-  line->set_property("line-width", 1.0f);
-#endif  
 
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   if(is_rule)
     line->property_stroke_color() = "green";
   else
     line->property_stroke_color() = "gray";
-#else
-  if(is_rule)
-    line->set_property("stroke-color", Glib::ustring("green"));
-  else
-    line->set_property("stroke-color", Glib::ustring("gray"));
-#endif
   return line;
 }
 
@@ -238,17 +227,10 @@ void CanvasGroupGrid::create_lines()
   if(m_grid_gap > 0) //0 steps cause a crash in older versions of goocanvas.
   {
     m_grid_lines = Goocanvas::Grid::create(0, 0, width, height, m_grid_gap, m_grid_gap);
-#ifdef GLIBMM_PROPERTIES_ENABLED    
     m_grid_lines->property_horz_grid_line_width() = 1.0f;
     m_grid_lines->property_vert_grid_line_width() = 1.0f;
     m_grid_lines->property_horz_grid_line_color() = "gray";
     m_grid_lines->property_vert_grid_line_color() = "gray";
-#else    
-    m_grid_lines->set_property("horz-grid-line-width", 1.0f);
-    m_grid_lines->set_property("vert-grid-line-width", 1.0f);
-    m_grid_lines->set_property("horz-grid-line-color", Glib::ustring("gray"));
-    m_grid_lines->set_property("vert-grid-line-color", Glib::ustring("gray"));
-#endif
     add_child(m_grid_lines);
   }
 
diff --git a/glom/utility_widgets/canvas/canvas_group_resizable.cc b/glom/utility_widgets/canvas/canvas_group_resizable.cc
index 95ade73..18a95c0 100644
--- a/glom/utility_widgets/canvas/canvas_group_resizable.cc
+++ b/glom/utility_widgets/canvas/canvas_group_resizable.cc
@@ -63,13 +63,8 @@ void CanvasGroupResizable::create_manipulators()
 void CanvasGroupResizable::create_rect_manipulators()
 {
   m_rect = Goocanvas::Rect::create(0, 0, 0, 0);
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   m_rect->property_line_width() = 0;
   m_rect->property_fill_color() = "white";
-#else
-  m_rect->set_property("line-width", 0);
-  m_rect->set_property("fill-color", Glib::ustring("white"));
-#endif  
   add_child(m_rect);
 
   //Allow dragging of the rect to move everything:
@@ -196,19 +191,11 @@ void CanvasGroupResizable::position_rect_manipulators()
 
 
   //Show the size of this item (not always the same as the child size):
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   m_rect->property_x() = child_x;
   m_rect->property_y() = child_y;
   m_rect->property_width() = child_width;
   m_rect->property_height() = child_height;
   m_rect->property_fill_color() = "white";
-#else
-  m_rect->set_property("x", child_x);
-  m_rect->set_property("y", child_y);
-  m_rect->set_property("width", child_width);
-  m_rect->set_property("height",child_height);
-  m_rect->set_property("fill_color", Glib::ustring("white"));
-#endif
 
   const double x2 = child_x + child_width;
   const double y2 = child_y + child_height;
@@ -243,12 +230,7 @@ void CanvasGroupResizable::position_line_manipulators()
   if(!line)
     return;
 
-#ifdef GLIBMM_PROPERTIES_ENABLED
   const Goocanvas::Points points = line->property_points();
-#else
-  Goocanvas::Points points;
-  line->get_property("points", points);
-#endif
   if(points.get_num_points() < 2)
     return;
 
@@ -439,27 +421,14 @@ void CanvasGroupResizable::on_manipulator_corner_moved(Manipulators manipulator_
   double child_height = 0;
   get_width_height(child_width, child_height);
 
-#ifndef GLIBMM_PROPERTIES_ENABLED
-  // The compiler probably already does exactly this...
-  int x = 0;
-  int y = 0;
-  manipulator->get_property("x", x);
-  manipulator->get_property("y", y);
-#endif  
-
   switch(manipulator_id)
   {     
     case(MANIPULATOR_CORNER_TOP_LEFT):
     {
       const double new_x = std::min(manipulator_x, child_x + child_width);
       const double new_y = std::min(manipulator_y, child_y + child_height);
-#ifdef GLIBMM_PROPERTIES_ENABLED      
       const double new_height = std::max(child_y + child_height - manipulator->property_y(), 0.0);
       const double new_width = std::max(child_x + child_width - manipulator->property_x(), 0.0);
-#else      
-      const double new_height = std::max(child_y + child_height - y, 0.0);
-      const double new_width = std::max(child_x + child_width - x, 0.0);
-#endif
       set_xy(new_x, new_y);
       set_width_height(new_width, new_height);
 
@@ -468,13 +437,8 @@ void CanvasGroupResizable::on_manipulator_corner_moved(Manipulators manipulator_
     case(MANIPULATOR_CORNER_TOP_RIGHT):
     {
       const double new_y = std::min(manipulator_y, child_y + child_height);
-#ifdef GLIBMM_PROPERTIES_ENABLED
       const double new_height = std::max(child_y + child_height - manipulator->property_y(), 0.0);
       const double new_width = std::max(manipulator->property_x() + manipulator_corner_size - child_x, 0.0);
-#else      
-      const double new_height = std::max(child_y + child_height - y, 0.0);
-      const double new_width = std::max(x + manipulator_corner_size - child_x, 0.0);
-#endif
 
       set_xy(child_x, new_y);
       set_width_height(new_width, new_height);
@@ -484,13 +448,8 @@ void CanvasGroupResizable::on_manipulator_corner_moved(Manipulators manipulator_
     case(MANIPULATOR_CORNER_BOTTOM_LEFT):
     {
       const double new_x = std::min(manipulator_x, child_x + child_width);
-#ifdef GLIBMM_PROPERTIES_ENABLED
       const double new_height = std::max(manipulator->property_y() + manipulator_corner_size - child_y, 0.0);
       const double new_width = std::max(child_x + child_width - manipulator->property_x(), 0.0);
-#else
-      const double new_height = std::max(y + manipulator_corner_size - child_y, 0.0);
-      const double new_width = std::max(child_x + child_width - x, 0.0);
-#endif
       set_xy(new_x, child_y);
       set_width_height(new_width, new_height);
 
@@ -498,13 +457,8 @@ void CanvasGroupResizable::on_manipulator_corner_moved(Manipulators manipulator_
     }
     case(MANIPULATOR_CORNER_BOTTOM_RIGHT):
     {
-#ifdef GLIBMM_PROPERTIES_ENABLED    
       const double new_height = std::max(manipulator->property_y() + manipulator_corner_size - child_y, 0.0);
       const double new_width = std::max(manipulator->property_x() + manipulator_corner_size - child_x, 0.0);
-#else
-      const double new_height = std::max(y + manipulator_corner_size - child_y, 0.0);
-      const double new_width = std::max(x + manipulator_corner_size - child_x, 0.0);
-#endif
       set_width_height(new_width, new_height);
 
       break;
@@ -540,12 +494,7 @@ void CanvasGroupResizable::on_manipulator_line_end_moved(Manipulators manipulato
   double manipulator_y = 0;
   manipulator->get_xy(manipulator_x, manipulator_y);
 
-#ifdef GLIBMM_PROPERTIES_ENABLED
   Goocanvas::Points points = line->property_points();
-#else
-  Goocanvas::Points points;
-  line->get_property("points", points);
-#endif
   
   if(points.get_num_points() < 2)
     return;
@@ -553,11 +502,7 @@ void CanvasGroupResizable::on_manipulator_line_end_moved(Manipulators manipulato
   const int point_index = (manipulator_id == MANIPULATOR_START) ? 0 : 1;
   const double half_size = manipulator_corner_size / 2;
   points.set_coordinate(point_index, manipulator_x + half_size, manipulator_y + half_size);
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   line->property_points() = points; //TODO: Add a way to do this without getting and setting the points property.
-#else  
-  line->set_property("points", points); //TODO: Add a way to do this without getting and setting the points property.
-#endif
 
   position_manipulators();
 }
@@ -587,12 +532,7 @@ void CanvasGroupResizable::on_manipulator_edge_moved(Manipulators manipulator_id
   
   //std::cout << "CanvasGroupResizable::on_manipulator_edge_moved(): manipulator=" << manipulator_id << std::endl;
 
-#ifdef GLIBMM_PROPERTIES_ENABLED
   Goocanvas::Points points = manipulator->property_points();
-#else  
-  Goocanvas::Points points;
-  manipulator->get_property("points", points);
-#endif
   double x1 = 0;
   double y1 = 0;
   points.get_coordinate(0, x1, y1);
@@ -702,11 +642,7 @@ void CanvasGroupResizable::set_manipulators_visibility(Goocanvas::ItemVisibility
     return;
 
   //For testing: visibility = Goocanvas::ITEM_VISIBLE;
-#ifdef GLIBMM_PROPERTIES_ENABLED
   m_group_manipulators->property_visibility() = visibility;
-#else  
-  m_group_manipulators->set_property("visibility", visibility);
-#endif
 }
 
 bool CanvasGroupResizable::on_rect_enter_notify_event(const Glib::RefPtr<Goocanvas::Item>& /* target */, GdkEventCrossing* /* event */)
@@ -756,34 +692,20 @@ bool CanvasGroupResizable::on_resizer_leave_notify_event(const Glib::RefPtr<Gooc
 Glib::RefPtr<CanvasRectMovable> CanvasGroupResizable::create_corner_manipulator()
 {
   Glib::RefPtr<CanvasRectMovable> result = CanvasRectMovable::create();
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   result->property_fill_color() = manipulator_corner_fill_color; //This makes the whole area clickable, not just the outline stroke:
   result->property_line_width() = manipulator_stroke_width;
   result->property_stroke_color() = manipulator_stroke_color;
 
   result->property_height() = manipulator_corner_size;
   result->property_width() = manipulator_corner_size;
-#else
-  result->set_property("fill-color", manipulator_corner_fill_color); //This makes the whole area clickable, not just the outline stroke:
-  result->set_property("line-width", manipulator_stroke_width);
-  result->set_property("stroke_color", manipulator_stroke_color);
-
-  result->set_property("height", manipulator_corner_size);
-  result->set_property("width", manipulator_corner_size);
-#endif
   return result;
 }
 
 Glib::RefPtr<CanvasLineMovable> CanvasGroupResizable::create_edge_manipulator()
 {
   Glib::RefPtr<Glom::CanvasLineMovable> line = Glom::CanvasLineMovable::create();
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   line->property_line_width() = manipulator_stroke_width;
   line->property_stroke_color() = manipulator_stroke_color;
-#else
-  line->set_property("line-width", manipulator_stroke_width);
-  line->set_property("stroke-color", manipulator_stroke_color);
-#endif
   return line;
 }
 
@@ -791,11 +713,7 @@ void CanvasGroupResizable::set_edge_points(const Glib::RefPtr<Glom::CanvasLineMo
 {
   double points_coordinates[] = {x1, y1, x2, y2};
   Goocanvas::Points points(2, points_coordinates);
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   line->property_points() = points;
-#else  
-  line->set_property("points", points);
-#endif
 }
 
 void CanvasGroupResizable::get_xy(double& x, double& y) const
diff --git a/glom/utility_widgets/canvas/canvas_image_movable.cc b/glom/utility_widgets/canvas/canvas_image_movable.cc
index 3609e64..c9da789 100644
--- a/glom/utility_widgets/canvas/canvas_image_movable.cc
+++ b/glom/utility_widgets/canvas/canvas_image_movable.cc
@@ -72,24 +72,14 @@ Glib::RefPtr<CanvasImageMovable> CanvasImageMovable::create(double x, double y)
 
 void CanvasImageMovable::get_xy(double& x, double& y) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   x = property_x();
   y = property_y();
-#else
-  get_property("x", x);
-  get_property("y", y);
-#endif
 }
 
 void CanvasImageMovable::set_xy(double x, double y)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_x() = x;
   property_y() = y;
-#else
-  set_property("x", x);
-  set_property("y", y);
-#endif
 }
 
 void CanvasImageMovable::get_width_height(double& width, double& height) const
@@ -97,24 +87,14 @@ void CanvasImageMovable::get_width_height(double& width, double& height) const
   //TODO: This only works when it is on a canvas already,
   //and this is apparently incorrect when the "coordinate space" of the item changes, whatever that means. murrayc.
   
-#ifdef GLIBMM_PROPERTIES_ENABLED
   width = property_width();
   height = property_height();
-#else
-  get_property("width", width);
-  get_property("height", height);
-#endif 
 }
 
 void CanvasImageMovable::set_width_height(double width, double height)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_width() = width;
   property_height() = height;
-#else
-  set_property("width", width);
-  set_property("height", height);
-#endif 
 }
 
 void CanvasImageMovable::snap_position(double& x, double& y) const
@@ -133,11 +113,7 @@ void CanvasImageMovable::snap_position(double& x, double& y) const
       corner_y_offset = 0;
       break;
     case CORNER_TOP_RIGHT:
-#ifdef GLIBMM_PROPERTIES_ENABLED    
       corner_x_offset = property_width();
-#else
-      get_property("width", corner_x_offset);
-#endif      
       corner_y_offset = 0;
       break;
     case CORNER_BOTTOM_LEFT:
@@ -180,11 +156,7 @@ void CanvasImageMovable::set_snap_corner(Corners corner)
 
 void CanvasImageMovable::set_image(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf, bool scale)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_pixbuf() = pixbuf;
-#else
-  set_property("pixbuf", pixbuf);
-#endif    
   m_pixbuf = pixbuf;
 
   if(scale)
@@ -206,11 +178,7 @@ void CanvasImageMovable::scale_to_size()
   if(width && height)
   {
     Glib::RefPtr<Gdk::Pixbuf> pixbuf = Utils::image_scale_keeping_ratio(m_pixbuf, (int)height, (int)width);
-#ifdef GLIBMM_PROPERTIES_ENABLED
     property_pixbuf() = pixbuf;
-#else
-    set_property("pixbuf", pixbuf);
-#endif 
   }
 
   //Make sure that the size stays the same even if the scaling wasn't exact:
@@ -230,11 +198,7 @@ void CanvasImageMovable::set_image_empty()
   Glib::RefPtr<Gdk::Pixbuf> pixbuf;
   if(widget)
     pixbuf = widget->render_icon(Gtk::Stock::MISSING_IMAGE, Gtk::ICON_SIZE_DIALOG);
-#ifdef GLIBMM_PROPERTIES_ENABLED
     property_pixbuf() = pixbuf;
-#else
-    set_property("pixbuf", pixbuf);
-#endif
 }
 
 bool CanvasImageMovable::get_image_empty() const
diff --git a/glom/utility_widgets/canvas/canvas_line_movable.cc b/glom/utility_widgets/canvas/canvas_line_movable.cc
index eac00cd..4add442 100644
--- a/glom/utility_widgets/canvas/canvas_line_movable.cc
+++ b/glom/utility_widgets/canvas/canvas_line_movable.cc
@@ -50,48 +50,28 @@ Glib::RefPtr<CanvasLineMovable> CanvasLineMovable::create()
 
 void CanvasLineMovable::get_xy(double& x, double& y) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   x = property_x();
   y = property_y();
-#else
-  get_property("x", x);
-  get_property("y", y);
-#endif
 }
 
 void CanvasLineMovable::set_xy(double x, double y)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_x() = x;
   property_y() = y;
-#else
-  set_property("x", x);
-  set_property("y", y);
-#endif
 }
 
 void CanvasLineMovable::get_width_height(double& width, double& height) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   width = property_width();
   height = property_height();
-#else
-  get_property("width", width);
-  get_property("height", height);
-#endif
 
   //std::cout << "CanvasLineMovable::get_width_height(): width=" << width << std::endl;
 }
 
 void CanvasLineMovable::set_width_height(double width, double height)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_width() = width;
   property_height() = height;
-#else
-  set_property("width", width);
-  set_property("height", height);
-#endif
 
   //std::cout << "CanvasLineMovable::set_width_height(): end x=" << x1+width << std::endl;
 }
diff --git a/glom/utility_widgets/canvas/canvas_rect_movable.cc b/glom/utility_widgets/canvas/canvas_rect_movable.cc
index a0afc54..a033177 100644
--- a/glom/utility_widgets/canvas/canvas_rect_movable.cc
+++ b/glom/utility_widgets/canvas/canvas_rect_movable.cc
@@ -68,46 +68,26 @@ Glib::RefPtr<CanvasRectMovable> CanvasRectMovable::create(double x, double y, do
 
 void CanvasRectMovable::get_xy(double& x, double& y) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   x = property_x();
   y = property_y();
-#else
-  get_property("x", x);
-  get_property("y", y);
-#endif
 }
 
 void CanvasRectMovable::set_xy(double x, double y)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_x() = x;
   property_y() = y;
-#else
-  set_property("x", x);
-  set_property("y", y);
-#endif
 }
 
 void CanvasRectMovable::get_width_height(double& width, double& height) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   width = property_width();
   height = property_height();
-#else
-  get_property("width", width);
-  get_property("height", height);
-#endif
 }
 
 void CanvasRectMovable::set_width_height(double width, double height)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_width() = width;
   property_height() = height;
-#else
-  set_property("width", width);
-  set_property("height", height);
-#endif
 }
 
 void CanvasRectMovable::snap_position_one_corner(Corners corner, double& x, double& y) const
@@ -122,32 +102,16 @@ void CanvasRectMovable::snap_position_one_corner(Corners corner, double& x, doub
       corner_y_offset = 0;
       break;
     case CORNER_TOP_RIGHT:
-#ifdef GLIBMM_PROPERTIES_ENABLED    
       corner_x_offset = property_width();
-#else
-      get_property("width", corner_x_offset);
-#endif            
       corner_y_offset = 0;
       break;
     case CORNER_BOTTOM_LEFT:
       corner_x_offset = 0;
-#ifdef GLIBMM_PROPERTIES_ENABLED    
       corner_y_offset = property_height();
-#else
-      get_property("height", corner_y_offset);
-#endif            
       break;
     case CORNER_BOTTOM_RIGHT:
-#ifdef GLIBMM_PROPERTIES_ENABLED    
       corner_x_offset = property_width();
-#else
-      get_property("width", corner_x_offset);
-#endif            
-#ifdef GLIBMM_PROPERTIES_ENABLED    
       corner_y_offset = property_height();
-#else
-      get_property("height", corner_y_offset);
-#endif
       break;
     default:
       break;
diff --git a/glom/utility_widgets/canvas/canvas_table_movable.cc b/glom/utility_widgets/canvas/canvas_table_movable.cc
index 7ab61dc..2ee1077 100644
--- a/glom/utility_widgets/canvas/canvas_table_movable.cc
+++ b/glom/utility_widgets/canvas/canvas_table_movable.cc
@@ -48,35 +48,20 @@ Glib::RefPtr<CanvasTableMovable> CanvasTableMovable::create()
 
 void CanvasTableMovable::get_xy(double& x, double& y) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   x = property_x();
   y = property_y();
-#else
-  get_property("x", x);
-  get_property("y", y);
-#endif  
 }
 
 void CanvasTableMovable::set_xy(double x, double y)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_x() = x;
   property_y() = y;
-#else
-  set_property("x", x);
-  set_property("y", y);
-#endif  
 }
 
 void CanvasTableMovable::get_width_height(double& width, double& height) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   width = property_width();
   height = property_height();
-#else
-  get_property("width", width);
-  get_property("height", height);
-#endif    
 
   if(width == -1) //Means "default width" - presumably the width demanded by the children. But we don't use that.
     width = 0;
@@ -91,13 +76,8 @@ void CanvasTableMovable::set_width_height(double width, double height)
   {
     std::cout << "CanvasTableMovable::set_width_height(): width is -1" << std::endl;
   }
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_width() = width;
   property_height() = height;
-#else
-  set_property("width", width);
-  set_property("height", height);
-#endif    
 }
 
 void CanvasTableMovable::set_grid(const Glib::RefPtr<const CanvasGroupGrid>& grid)
diff --git a/glom/utility_widgets/canvas/canvas_text_movable.cc b/glom/utility_widgets/canvas/canvas_text_movable.cc
index f8a9ad7..ed58602 100644
--- a/glom/utility_widgets/canvas/canvas_text_movable.cc
+++ b/glom/utility_widgets/canvas/canvas_text_movable.cc
@@ -55,24 +55,14 @@ Glib::RefPtr<CanvasTextMovable> CanvasTextMovable::create(const Glib::ustring& s
 
 void CanvasTextMovable::get_xy(double& x, double& y) const
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   x = property_x();
   y = property_y();
-#else
-  get_property("x", x);
-  get_property("y", y);
-#endif
 }
 
 void CanvasTextMovable::set_xy(double x, double y)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_x() = x;
   property_y() = y;
-#else
-  set_property("x", x);
-  set_property("y", y);
-#endif
 }
 
 void CanvasTextMovable::get_width_height(double& width, double& height) const
@@ -80,24 +70,14 @@ void CanvasTextMovable::get_width_height(double& width, double& height) const
   //TODO: This only works when it is on a canvas already,
   //and this is apparently incorrect when the "coordinate space" of the item changes, whatever that means. murrayc.
   
-#ifdef GLIBMM_PROPERTIES_ENABLED
   width = property_width();
   height = property_height();
-#else
-  get_property("width", width);
-  get_property("height", height);
-#endif
 }
 
 void CanvasTextMovable::set_width_height(double width, double height)
 {
-#ifdef GLIBMM_PROPERTIES_ENABLED
   property_width() = width;
   property_height() = height;
-#else
-  set_property("width", width);
-  set_property("height", height);
-#endif
 }
 
 void CanvasTextMovable::snap_position(double& x, double& y) const
@@ -116,11 +96,7 @@ void CanvasTextMovable::snap_position(double& x, double& y) const
       corner_y_offset = 0;
       break;
     case CORNER_TOP_RIGHT:
-#ifdef GLIBMM_PROPERTIES_ENABLED    
       corner_x_offset = property_width();
-#else
-      get_property("width", corner_x_offset);
-#endif
       corner_y_offset = 0;
       break;
     case CORNER_BOTTOM_LEFT:
@@ -193,11 +169,7 @@ void CanvasTextMovable::reconstruct_markup()
 {
   if(m_font.empty())
   {
-#ifdef GLIBMM_PROPERTIES_ENABLED
     property_text() = m_text;
-#else
-    set_property("text", m_text);
-#endif    
     return;
   }
 
@@ -212,29 +184,17 @@ void CanvasTextMovable::reconstruct_markup()
     markup = g_strdup_printf("<span font_desc=\"%s\">%s</span>", m_font.c_str(), m_text.c_str());
     //std::cout << "DEBUG: markup=" << markup << std::endl;
   }
-#ifdef GLIBMM_PROPERTIES_ENABLED  
   property_use_markup() = true;
-#else
-  set_property("markup", true);
-#endif    
 
 
   if(markup)
   {
-#ifdef GLIBMM_PROPERTIES_ENABLED
     property_text() = Glib::ustring(markup); //TODO: Inefficient.
-#else
-    set_property("text", Glib::ustring(markup));
-#endif        
     g_free(markup);
   }
   else
   {
-#ifdef GLIBMM_PROPERTIES_ENABLED  
     property_text() = Glib::ustring();
-#else
-    set_property("text", Glib::ustring());
-#endif        
   }
 }
 
diff --git a/glom/utility_widgets/canvas/test_canvas_editable.cc b/glom/utility_widgets/canvas/test_canvas_editable.cc
index e20fec3..39ffd47 100644
--- a/glom/utility_widgets/canvas/test_canvas_editable.cc
+++ b/glom/utility_widgets/canvas/test_canvas_editable.cc
@@ -164,10 +164,8 @@ private:
     m_context_menu_uimanager = Gtk::UIManager::create();
     m_context_menu_uimanager->insert_action_group(m_context_menu_action_group);
 
-    #ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
     {
-    #endif
       Glib::ustring ui_info = 
         "<ui>"
         "  <popup name='ContextMenu'>"
@@ -176,21 +174,12 @@ private:
         "  </popup>"
         "</ui>";
 
-    #ifdef GLIBMM_EXCEPTIONS_ENABLED
       m_context_menu_uimanager->add_ui_from_string(ui_info);
     }
     catch(const Glib::Error& ex)
     {
       std::cerr << "building menus failed: " <<  ex.what();
     }
-    #else
-    std::auto_ptr<Glib::Error> error;
-    m_context_menu_uimanager->add_ui_from_string(ui_info, error);
-    if(error.get())
-    {
-      std::cerr << "building menus failed: " << error->what();
-    }
-    #endif
 
     //Get the menu:
     m_context_menu = dynamic_cast<Gtk::Menu*>( m_context_menu_uimanager->get_widget("/ContextMenu") ); 
diff --git a/glom/utility_widgets/db_adddel/db_adddel.cc b/glom/utility_widgets/db_adddel/db_adddel.cc
index 018b533..424605a 100644
--- a/glom/utility_widgets/db_adddel/db_adddel.cc
+++ b/glom/utility_widgets/db_adddel/db_adddel.cc
@@ -291,10 +291,8 @@ void DbAddDel::setup_menu()
 
   //TODO: add_accel_group(m_refUIManager->get_accel_group());
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-#endif
     Glib::ustring ui_info = 
         "<ui>"
         "  <popup name='ContextMenu'>"
@@ -307,21 +305,12 @@ void DbAddDel::setup_menu()
         "  </popup>"
         "</ui>";
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_refUIManager->add_ui_from_string(ui_info);
   }
   catch(const Glib::Error& ex)
   {
     std::cerr << "building menus failed: " <<  ex.what();
   }
-#else
-  std::auto_ptr<Glib::Error> error;
-  m_refUIManager->add_ui_from_string(ui_info, error);
-  if(error.get())
-  {
-    std::cerr << "building menus failed: " << error->what();
-  }
-#endif //GLIBMM_EXCEPTIONS_ENABLED
 
   //Get the menu:
   m_pMenuPopup = dynamic_cast<Gtk::Menu*>( m_refUIManager->get_widget("/ContextMenu") ); 
@@ -922,37 +911,21 @@ void DbAddDel::apply_formatting(Gtk::CellRenderer* renderer, const sharedptr<con
   const FieldFormatting::HorizontalAlignment alignment =
     layout_item->get_formatting_used_horizontal_alignment();
   const float x_align = (alignment == FieldFormatting::HORIZONTAL_ALIGNMENT_LEFT ? 0.0 : 1.0);
-#ifdef GLIBMM_PROPERTIES_ENABLED  
-      text_renderer->property_xalign() = x_align;
-#else    
-      text_renderer->set_property("xalign", alignment);
-#endif
+  text_renderer->property_xalign() = x_align;
 
   const FieldFormatting& formatting = layout_item->get_formatting_used();
 
   const Glib::ustring font_desc = formatting.get_text_format_font();
   if(!font_desc.empty())
-#ifdef GLIBMM_PROPERTIES_ENABLED  
-    text_renderer->property_font() = font_desc;
-#else
-    text_renderer->set_property("font", font_desc);
-#endif        
+  text_renderer->property_font() = font_desc;       
 
   const Glib::ustring fg = formatting.get_text_format_color_foreground();
   if(!fg.empty())
-#ifdef GLIBMM_PROPERTIES_ENABLED  
     text_renderer->property_foreground() = fg;
-#else    
-    text_renderer->set_property("foreground", fg);
-#endif
     
   const Glib::ustring bg = formatting.get_text_format_color_background();
   if(!bg.empty())
-#ifdef GLIBMM_PROPERTIES_ENABLED
     text_renderer->property_background() = bg;
-#else    
-    text_renderer->set_property("background", bg);
-#endif
 }
 
 void DbAddDel::construct_specified_columns()
@@ -2482,9 +2455,7 @@ void DbAddDel::user_changed(const Gtk::TreeModel::iterator& row, guint col)
     Gtk::Window* window = get_application();
 
     //Just update the record:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
-#endif // GLIBMM_EXCEPTIONS_ENABLED
     {
       if(!layout_field->get_has_relationship_name())
       {
@@ -2566,7 +2537,6 @@ void DbAddDel::user_changed(const Gtk::TreeModel::iterator& row, guint col)
       else
         signal_record_changed().emit();
     }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     catch(const Glib::Exception& ex)
     {
       handle_error(ex);
@@ -2591,7 +2561,6 @@ void DbAddDel::user_changed(const Gtk::TreeModel::iterator& row, guint col)
         set_entered_field_data(row, layout_field, value_old);
       }
     }
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
   else
   {
@@ -2661,13 +2630,7 @@ void DbAddDel::user_added(const Gtk::TreeModel::iterator& row)
   if(Conversions::value_is_empty(primary_key_value))
     return;
     
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   sharedptr<SharedConnection> sharedconnection = connect_to_server(get_application()); //Keep it alive while we need the data_model.
-  #else
-  std::auto_ptr<ExceptionConnection> error;
-  sharedptr<SharedConnection> sharedconnection = connect_to_server(get_application(), error); //Keep it alive while we need the data_model.
-  // Ignore error - sharedconnection is checked for NULL instead:
-  #endif
   if(!sharedconnection)
   {
     //Add Record failed.
diff --git a/glom/utility_widgets/db_adddel/glom_db_treemodel.cc b/glom/utility_widgets/db_adddel/glom_db_treemodel.cc
index 8ced4b1..2a766e8 100644
--- a/glom/utility_widgets/db_adddel/glom_db_treemodel.cc
+++ b/glom/utility_widgets/db_adddel/glom_db_treemodel.cc
@@ -243,12 +243,7 @@ bool DbTreeModel::refresh_from_database(const FoundSet& found_set)
     }
 
     //Add at least an initial row:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   m_gda_datamodel->append_row(); //TODO: Handle adding.
-#else
-  std::auto_ptr<Glib::Error> error;
-  m_gda_datamodel->append_row(error); //TODO: Handle adding.
-#endif
     return true;
   }
 
@@ -257,13 +252,7 @@ bool DbTreeModel::refresh_from_database(const FoundSet& found_set)
   ConnectionPool* connection_pool = ConnectionPool::get_instance();
   if(connection_pool)
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
      m_connection = connection_pool->connect();
-#else
-     std::auto_ptr<ExceptionConnection> error;
-     m_connection = connection_pool->connect(error);
-     // Ignore error. The connection presence is checked below
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
 
   if(m_found_set.m_table_name.empty())
@@ -917,12 +906,7 @@ void DbTreeModel::get_record_counts(gulong& total, gulong& found) const
       {
         if(datamodel->get_n_rows())
         {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
           Gnome::Gda::Value value = datamodel->get_value_at(0, 0);
-#else
-          std::auto_ptr<Glib::Error> value_error;
-          Gnome::Gda::Value value = datamodel->get_value_at(0, 0, value_error);
-#endif
           total = (gulong)value.get_int64(); //I discovered that it's a int64 by trying it.
         }
       }
diff --git a/glom/utility_widgets/dialog_image_progress.cc b/glom/utility_widgets/dialog_image_progress.cc
index ad8e9ac..d802f72 100644
--- a/glom/utility_widgets/dialog_image_progress.cc
+++ b/glom/utility_widgets/dialog_image_progress.cc
@@ -42,10 +42,8 @@ Dialog_Image_Progress::Dialog_Image_Progress(BaseObjectType* cobject, const Glib
 {
   builder->get_widget("image_loading_progress_bar", m_progress_bar);
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   if(!m_progress_bar)
     throw std::runtime_error("Missing widgets from glade file for Dialog_Image_Progress");
-#endif    
 }
 
 Dialog_Image_Progress::~Dialog_Image_Progress()
@@ -54,7 +52,6 @@ Dialog_Image_Progress::~Dialog_Image_Progress()
     g_free(m_data->data);
   if(m_loader)
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED  
     try
     {
       m_loader->close();
@@ -65,10 +62,6 @@ Dialog_Image_Progress::~Dialog_Image_Progress()
       // not yet been loaded completely, for example when cancelling the
       // dialog.
     }
-#else
-    std::auto_ptr<Glib::Error> error;
-    m_loader->close(error);
-#endif    
   }
 
   // TODO: Cancel outstanding async operations in destructor?
@@ -87,7 +80,6 @@ void Dialog_Image_Progress::load(const Glib::ustring& uri)
   m_file = Gio::File::create_for_uri(uri);
   m_progress_bar->set_text(Glib::ustring::compose("Loading %1...", m_file->get_parse_name()));
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     // Open the file for reading:
@@ -97,14 +89,10 @@ void Dialog_Image_Progress::load(const Glib::ustring& uri)
   {
     error(ex.what());
   }
-#else
-  m_file->read_async(sigc::mem_fun(*this, &Dialog_Image_Progress::on_file_read));
-#endif    
 }
 
 void Dialog_Image_Progress::on_file_read(const Glib::RefPtr<Gio::AsyncResult>& result)
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     m_stream = m_file->read_finish(result);
@@ -115,19 +103,10 @@ void Dialog_Image_Progress::on_file_read(const Glib::RefPtr<Gio::AsyncResult>& r
   {
     error(ex.what());
   }
-#else
-    std::auto_ptr<Glib::Error> ex;
-    m_stream = m_file->read_finish(result, ex);
-    // Query size of the file, so that we can show progress:
-    m_stream->query_info_async(sigc::mem_fun(*this, &Dialog_Image_Progress::on_query_info), G_FILE_ATTRIBUTE_STANDARD_SIZE);
-    if (ex.get())
-      error(ex->what());
-#endif      
 }
 
 void Dialog_Image_Progress::on_query_info(const Glib::RefPtr<Gio::AsyncResult>& result)
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     Glib::RefPtr<Gio::FileInfo> info = m_stream->query_info_finish(result);
@@ -144,27 +123,10 @@ void Dialog_Image_Progress::on_query_info(const Glib::RefPtr<Gio::AsyncResult>&
   {
     error(ex.what());
   }
-#else
-  std::auto_ptr<Glib::Error> ex;
-  Glib::RefPtr<Gio::FileInfo> info = m_stream->query_info_finish(result, ex);
-  if (ex.get())
-  {
-    error(ex->what());
-    return;
-  }
-  m_data->binary_length = info->get_size();
-  // We need to use the glib allocater here:
-  m_data->data = static_cast<guchar*>(g_try_malloc(m_data->binary_length));
-  if(!m_data->data)
-    error(_("Not enough memory available to load the image"));
-  // Read the first chunk from the file
-  m_stream->read_async(m_data->data, std::min<gsize>(CHUNK_SIZE, m_data->binary_length), sigc::bind(sigc::mem_fun(*this, &Dialog_Image_Progress::on_stream_read), 0));
-#endif
 }
 
 void Dialog_Image_Progress::on_stream_read(const Glib::RefPtr<Gio::AsyncResult>& result, unsigned int offset)
 {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     gssize size = m_stream->read_finish(result);
@@ -189,35 +151,6 @@ void Dialog_Image_Progress::on_stream_read(const Glib::RefPtr<Gio::AsyncResult>&
   {
     error(ex.what());
   }
-#else
-    std::auto_ptr<Glib::Error> ex;
-    gssize size = m_stream->read_finish(result, ex);
-    if (ex.get())
-    {
-      error(ex->what());
-      return;
-    }
-    g_assert(size >= 0); // Would have thrown an exception otherwise
-    // Cannot read more data than there is available in the file:
-    g_assert( static_cast<gssize>(offset + size) <= static_cast<gssize>(m_data->binary_length));
-    // Load image
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
-    m_loader->write(m_data->data + offset, size);
-#else
-    m_loader->write(m_data->data + offset, size, ex);
-#endif
-    // Set progress
-    m_progress_bar->set_fraction(static_cast<double>(offset + size) / m_data->binary_length);
-    // Read next chunk, if any
-    if(  static_cast<gssize>(offset + size) < static_cast<gssize>(m_data->binary_length))
-      // Even if choose a priority lower than GDK_PRIORITY_REDRAW + 10 for the
-      // read_async we don't see the progressbar progressing while the image
-      // is loading. Therefore we put an idle inbetween.
-      Glib::signal_idle().connect(sigc::bind_return(sigc::bind(sigc::mem_fun(*this, &Dialog_Image_Progress::on_read_next), offset + size), false));
-    else
-      // We are done loading the image, close the progress dialog
-      response(Gtk::RESPONSE_ACCEPT);
-#endif
 }
 
 void Dialog_Image_Progress::on_read_next(unsigned int at)
diff --git a/glom/utility_widgets/flowtable.cc b/glom/utility_widgets/flowtable.cc
index 97689cd..65e4ed8 100644
--- a/glom/utility_widgets/flowtable.cc
+++ b/glom/utility_widgets/flowtable.cc
@@ -24,149 +24,24 @@
 #include <gdkmm/window.h>
 #include <glom/utils_ui.h>
 
-
-namespace Glom
-{
-
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-
-GtkContainerClass* parent_class = 0;
-
-// TODO: It is probably OK doing static_cast here.
-void FlowTable::glom_size_request_impl(GtkWidget* widget, GtkRequisition* requisition)
-{
-  Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
-    Glib::ObjectBase::_get_current_wrapper((GObject*)widget));
-
-  if(obj_base)
-  {
-    Glom::FlowTable* table = dynamic_cast<Glom::FlowTable*>(obj_base);
-    g_assert(table);
-    table->on_size_request(requisition);
-  }
-  else if(GTK_WIDGET_CLASS(parent_class)->size_request)
-    GTK_WIDGET_CLASS(parent_class)->size_request(widget, requisition);
-}
-
-void FlowTable::glom_size_allocate_impl(GtkWidget* widget, GtkAllocation* allocation)
-{
-  Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
-    Glib::ObjectBase::_get_current_wrapper((GObject*)widget));
-
-  if(obj_base)
-  {
-    Glom::FlowTable* table = dynamic_cast<Glom::FlowTable*>(obj_base);
-    g_assert(table);
-
-    Gtk::Allocation cpp_allocation = Glib::wrap(allocation);
-    table->on_size_allocate(cpp_allocation);
-    *allocation = *cpp_allocation.gobj();
-  }
-  else if(GTK_WIDGET_CLASS(parent_class)->size_allocate)
-    GTK_WIDGET_CLASS(parent_class)->size_allocate(widget, allocation);
-}
-
-void FlowTable::glom_add_impl(GtkContainer* container, GtkWidget* widget)
-{
-  Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
-    Glib::ObjectBase::_get_current_wrapper((GObject*)container));
-
-  if(obj_base)
-  {
-    Glom::FlowTable* table = dynamic_cast<Glom::FlowTable*>(obj_base);
-    g_assert(table);
-    table->on_add(Glib::wrap(widget));
-  }
-  else if(parent_class->add)
-    parent_class->add(container, widget);
-}
-
-void FlowTable::glom_remove_impl(GtkContainer* container, GtkWidget* widget)
-{
-  Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
-    Glib::ObjectBase::_get_current_wrapper((GObject*)container));
-
-  if(obj_base)
-  {
-    Glom::FlowTable* table = dynamic_cast<Glom::FlowTable*>(obj_base);
-    g_assert(table);
-    table->on_remove(Glib::wrap(widget));
-  }
-  else if(parent_class->remove)
-    parent_class->remove(container, widget);
-}
-
-void FlowTable::glom_realize_impl(GtkWidget* widget)
-{
-  Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
-    Glib::ObjectBase::_get_current_wrapper((GObject*)widget));
-
-  if(obj_base)
-  {
-    Glom::FlowTable* table = dynamic_cast<Glom::FlowTable*>(obj_base);
-    g_assert(table);
-    table->on_realize();
-  }
-  else if(GTK_WIDGET_CLASS(parent_class)->realize)
-    GTK_WIDGET_CLASS(parent_class)->realize(widget);
-}
-
-void FlowTable::glom_unrealize_impl(GtkWidget* widget)
-{
-  Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
-    Glib::ObjectBase::_get_current_wrapper((GObject*)widget));
-
-  if(obj_base)
-  {
-    Glom::FlowTable* table = dynamic_cast<Glom::FlowTable*>(obj_base);
-    g_assert(table);
-    table->on_unrealize();
-  }
-  else if(GTK_WIDGET_CLASS(parent_class)->unrealize)
-    GTK_WIDGET_CLASS(parent_class)->unrealize(widget);
-}
-
-gboolean FlowTable::glom_expose_event_impl(GtkWidget* widget, GdkEventExpose* event)
-{
-  Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
-    Glib::ObjectBase::_get_current_wrapper((GObject*)widget));
-
-  if(obj_base)
-  {
-    Glom::FlowTable* table = dynamic_cast<Glom::FlowTable*>(obj_base);
-    g_assert(table);
-    return table->on_expose_event(event);
-  }
-  else if(GTK_WIDGET_CLASS(parent_class)->expose_event)
-    return GTK_WIDGET_CLASS(parent_class)->expose_event(widget, event);
-  else
-    return false;
-}
-#endif // !GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-} //namespace Glom
-
 namespace Glom
 {
 
 static void container_forall_callback(GtkWidget* widget_gobj, void* data)
 {
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
-  #endif //GLIBMM_EXCEPTIONS_ENABLED
     FlowTable::ForallSlot& slot = *static_cast<FlowTable::ForallSlot*>(data);
     Gtk::Widget *const widget = Glib::wrap(widget_gobj);
 
     g_return_if_fail(widget != 0);
 
     slot(*widget);
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   }
   catch(...)
   {
     Glib::exception_handlers_invoke();
   }
-  #endif //GLIBMM_EXCEPTIONS_ENABLED
 }
 
 
@@ -195,44 +70,12 @@ FlowTable::FlowTableItem::FlowTableItem(Gtk::Widget* first, Gtk::Widget* second,
 
 FlowTable::FlowTable()
 :
-#if !defined(GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED)
-  // This creates a custom GType for us, to override vfuncs and default
-  // signal handlers even with the reduced API.
-  // TODO: It is necessary to do this in all derived classes which is
-  // rather annoying, though I don't see another possibility at the moment. armin.
-  Glib::ObjectBase("Glom_FlowTable"),
-#endif // ! !defined(GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED)
   m_columns_allocated_changed(false),
   m_columns_count(1),
   m_column_padding(Utils::DEFAULT_SPACING_SMALL), //A sane default.
   m_row_padding(Utils::DEFAULT_SPACING_SMALL), //A sane default.
   m_design_mode(false)
 {
-#if !defined(GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED)
-  // TODO: Thread safety?
-  // TODO: We could also set up a Glib::Class derived object with a custom
-  // class init function so we do not need to lookup the class object by
-  // the underlaying gobj() as we do currently.
-  if(!parent_class)
-  {
-    GtkContainerClass* container_class = G_TYPE_INSTANCE_GET_CLASS(gobj(), G_TYPE_FROM_INSTANCE(gobj()), GtkContainerClass);
-    GtkWidgetClass* widget_class = GTK_WIDGET_CLASS(container_class);
-
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-    container_class->add = &Glom::FlowTable::glom_add_impl;
-    container_class->remove = &Glom::FlowTable::glom_remove_impl;
-
-    widget_class->size_request = &Glom::FlowTable::glom_size_request_impl;
-    widget_class->size_allocate = &Glom::FlowTable::glom_size_allocate_impl;
-    widget_class->realize = &Glom::FlowTable::glom_realize_impl;
-    widget_class->unrealize = &Glom::FlowTable::glom_unrealize_impl;
-    widget_class->expose_event = &Glom::FlowTable::glom_expose_event_impl;
-#endif // !GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-
-    parent_class = GTK_CONTAINER_CLASS(g_type_class_peek_parent(container_class));
-  }
-#endif // !defined(GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED)
-
   set_has_window(false);
   set_redraw_on_allocate(false);
 }
@@ -1013,12 +856,7 @@ void FlowTable::remove_all()
 
 void FlowTable::on_realize()
 {
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   Gtk::Container::on_realize();
-#else
-  if(GTK_WIDGET_CLASS(parent_class)->realize)
-    GTK_WIDGET_CLASS(parent_class)->realize(GTK_WIDGET(gobj()));
-#endif
 
   if(!m_refGdkWindow)
   {
@@ -1032,12 +870,7 @@ void FlowTable::on_unrealize()
   m_refGdkWindow.reset();
   m_refGC.reset();
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   Gtk::Container::on_unrealize();
-#else
-  if(GTK_WIDGET_CLASS(parent_class)->unrealize)
-    GTK_WIDGET_CLASS(parent_class)->unrealize(GTK_WIDGET(gobj()));
-#endif
 }
 
 bool FlowTable::on_expose_event(GdkEventExpose* event)
@@ -1062,13 +895,7 @@ bool FlowTable::on_expose_event(GdkEventExpose* event)
       }
     }
   }
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   return Gtk::Container::on_expose_event(event);
-#else
-  if(GTK_WIDGET_CLASS(parent_class)->expose_event)
-    return GTK_WIDGET_CLASS(parent_class)->expose_event(GTK_WIDGET(gobj()), event);
-  return true;
-#endif
 }
 
 bool FlowTable::get_column_for_first_widget(const Gtk::Widget& first, guint& column)
diff --git a/glom/utility_widgets/flowtable.h b/glom/utility_widgets/flowtable.h
index 87010bf..fd5fb1c 100644
--- a/glom/utility_widgets/flowtable.h
+++ b/glom/utility_widgets/flowtable.h
@@ -80,18 +80,6 @@ public:
 
 private:
 
-  #ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  // These are the hand-coded C default signal handlers in case the
-  // corresponding glibmm API has been disabled
-  static void glom_size_request_impl(GtkWidget* widget, GtkRequisition* requisition);
-  static void glom_size_allocate_impl(GtkWidget* widget, GtkAllocation* allocation);
-  static void glom_add_impl(GtkContainer* container, GtkWidget* widget);
-  static void glom_remove_impl(GtkContainer* container, GtkWidget* widget);
-
-  static void glom_realize_impl(GtkWidget* widget);
-  static void glom_unrealize_impl(GtkWidget* widget);
-  static gboolean glom_expose_event_impl(GtkWidget* widget, GdkEventExpose* event);
-  #endif
   //Overrides:
 
   //Handle child widgets:
diff --git a/glom/utility_widgets/imageglom.cc b/glom/utility_widgets/imageglom.cc
index 8800bcd..78bed64 100644
--- a/glom/utility_widgets/imageglom.cc
+++ b/glom/utility_widgets/imageglom.cc
@@ -54,11 +54,6 @@ void ImageGlom::init()
   setup_menu();
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 
-#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-  signal_button_press_event().connect(sigc::mem_fun(*this, &ImageGlom::on_button_press_event), false);
-  signal_expose_event().connect(sigc::mem_fun(*this, &ImageGlom::on_expose_event));
-#endif
-
   setup_menu_usermode();
 
   m_image.set_size_request(150, 150);
@@ -137,11 +132,7 @@ bool ImageGlom::on_button_press_event(GdkEventButton *event)
     }
   }
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   return Gtk::EventBox::on_button_press_event(event);
-#else
-  return false;
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 }
 
 Application* ImageGlom::get_application()
@@ -238,9 +229,7 @@ Gnome::Gda::Value ImageGlom::get_value() const
   
   if(m_pixbuf_original)
   {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     try
-#endif
     {
       gchar* buffer = 0;
       gsize buffer_size = 0;
@@ -249,12 +238,7 @@ Gnome::Gda::Value ImageGlom::get_value() const
       //list_keys.push_back("quality"); //For jpeg only.
       //list_values.push_back("95");
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
       m_pixbuf_original->save_to_buffer(buffer, buffer_size, GLOM_IMAGE_FORMAT, list_keys, list_values); //Always store images as the standard format in the database.
-#else
-      std::auto_ptr<Glib::Error> error;
-      m_pixbuf_original->save_to_buffer(buffer, buffer_size, GLOM_IMAGE_FORMAT, list_keys, list_values, error); //Always store images as the standard format in the database.
-#endif
 
       //g_warning("ImageGlom::get_value(): debug: to db: ");
       //for(int i = 0; i < 10; ++i)
@@ -271,26 +255,19 @@ Gnome::Gda::Value ImageGlom::get_value() const
       buffer = 0;
       return m_original_data;
     }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     catch(const Glib::Exception& ex)
     {
       std::cerr << "ImageGlom::get_value(): " << ex.what() << std::endl;
     }
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
 
   return Gnome::Gda::Value();
 }
 
-#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 bool ImageGlom::on_expose_event(GdkEventExpose* event)
 {
   const bool result = Gtk::EventBox::on_expose_event(event);
-#else
-bool ImageGlom::on_expose_event(GdkEventExpose* /* event */)
-{
-  const bool result = false;
-#endif // GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
   scale();
   return result;
 }
@@ -506,11 +483,7 @@ void ImageGlom::setup_menu_usermode()
 
   //TODO: add_accel_group(m_refUIManager_UserModePopup->get_accel_group());
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
-#else
-  std::auto_ptr<Glib::Error> error;
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   {
     Glib::ustring ui_info = 
         "<ui>"
@@ -522,20 +495,10 @@ void ImageGlom::setup_menu_usermode()
         "  </popup>"
         "</ui>";
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
     m_refUIManager_UserModePopup->add_ui_from_string(ui_info);
-#else
-    m_refUIManager_UserModePopup->add_ui_from_string(ui_info, error);
-#endif // GLIBMM_EXCEPTIONS_ENABLED
   }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   catch(const Glib::Error& ex)
   {
-#else
-  if(error.get())
-  {
-    const Glib::Error& ex = *error.get();
-#endif
     std::cerr << "building menus failed: " <<  ex.what();
   }
 
diff --git a/glom/utils_ui.cc b/glom/utils_ui.cc
index 6647793..0d8ed34 100644
--- a/glom/utils_ui.cc
+++ b/glom/utils_ui.cc
@@ -272,15 +272,12 @@ Glib::RefPtr<Gdk::Pixbuf> Utils::get_pixbuf_for_gda_value(const Gnome::Gda::Valu
       catch(const Gdk::PixbufError& ex)
       {
         refPixbufLoader.reset();
-#ifdef GLIBMM_EXCEPTIONS_ENABLED        
         std::cerr << "PixbufLoader::create failed: " << ex.what() << std::endl;
-#endif        
       }
 
       if(refPixbufLoader)
       {
         guint8* puiData = (guint8*)buffer_binary;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         try
         {
           refPixbufLoader->write(puiData, (glong)buffer_binary_length);
@@ -288,24 +285,9 @@ Glib::RefPtr<Gdk::Pixbuf> Utils::get_pixbuf_for_gda_value(const Gnome::Gda::Valu
 
           refPixbufLoader->close(); //This throws if write() threw, so it must be inside the try block.
         }
-#else
-        std::auto_ptr<Glib::Error> error;
-        refPixbufLoader->write(puiData, (glong)buffer_binary_length, error);
-        if(!error.get())
-        {
-          result = refPixbufLoader->get_pixbuf();
-          refPixbufLoader->close(error);
-        }
-#endif
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
         catch(const Glib::Exception& ex)
         {
-#else
-        if(error.get())
-        {
-          const Glib::Exception& ex = *error.get();        
-#endif
           g_warning("Conversions::get_pixbuf_for_gda_value(): PixbufLoader::write() failed: %s", ex.what().c_str());
         }
       }
@@ -365,7 +347,7 @@ int Utils::get_suitable_field_width_for_widget(Gtk::Widget& widget, const shared
       example_text = "EUR 9999999";
 #else
       example_text = "EUR 9999999999";
-#endif
+#endif //GLOM_ENABLE_MAEMO
       break;
     }
     case(Field::TYPE_TEXT):
@@ -377,7 +359,8 @@ int Utils::get_suitable_field_width_for_widget(Gtk::Widget& widget, const shared
         example_text = "AAAAAAAAAAAAAAAA";
 #else
         example_text = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
-#endif
+#endif //GLOM_ENABLE_MAEMO
+
       break;
     }
     default:
@@ -509,6 +492,7 @@ bool Utils::show_warning_no_records_found(Gtk::Window& transient_for)
   dialog.set_transient_for(transient_for);
 #endif
 
+
   dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
   dialog.add_button(_("New Find"), Gtk::RESPONSE_OK);
 
diff --git a/glom/xsl_utils.cc b/glom/xsl_utils.cc
index b7b3d7a..19ceb78 100644
--- a/glom/xsl_utils.cc
+++ b/glom/xsl_utils.cc
@@ -79,7 +79,6 @@ void GlomXslUtils::transform_and_open(const xmlpp::Document& xml_document, const
   Glib::RefPtr<Gio::FileOutputStream> stream;
 
   //Create the file if it does not already exist:
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     if(file->query_exists())
@@ -95,19 +94,6 @@ void GlomXslUtils::transform_and_open(const xmlpp::Document& xml_document, const
   }
   catch(const Gio::Error& ex)
   {
-#else
-  std::auto_ptr<Glib::Error> error;
-  if (file->query_exists())
-  {
-    stream = file->replace("" /* etag */, false /*make_backup*/, Gio::FILE_CREATE_NONE, error);
-  }
-  else
-  {
-    stream = file->create_file(Gio::FILE_CREATE_NONE, error);
-  }
-  if(error.get())
-  {
-#endif
     // If the operation was not successful, print the error and abort
     return; // false; // print_error(ex, output_uri_string);
   }
@@ -115,18 +101,12 @@ void GlomXslUtils::transform_and_open(const xmlpp::Document& xml_document, const
   //Write the data to the output uri
   gsize bytes_written = 0;
   const Glib::ustring::size_type result_bytes = result.bytes();
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     bytes_written = stream->write(result.data(), result_bytes);
   }
   catch(const Gio::Error& ex)
   {
-#else
-  bytes_written = stream->write(result.data(), result_bytes, error);
-  if(error.get())
-  {
-#endif
     // If the operation was not successful, print the error and abort
     return; // false; //print_error(ex, output_uri_string);
   }
@@ -152,7 +132,7 @@ void GlomXslUtils::transform_and_open(const xmlpp::Document& xml_document, const
     std::cerr << "Error while calling gtk_show_uri(): " << gerror->message << std::endl;
     g_error_free(gerror);
   }
-#endif
+#endif //G_OS_WIN32
 }
 
 Glib::ustring GlomXslUtils::xslt_process(const xmlpp::Document& xml_document, const std::string& filepath_xslt)
diff --git a/tests/import/test_parsing.cc b/tests/import/test_parsing.cc
index 6ee3922..480d1ea 100644
--- a/tests/import/test_parsing.cc
+++ b/tests/import/test_parsing.cc
@@ -46,7 +46,6 @@ bool check_tokens(const std::string& regex)
 {
   Glib::RefPtr<Glib::Regex> check;
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     check = Glib::Regex::create(regex);
@@ -56,15 +55,6 @@ bool check_tokens(const std::string& regex)
     std::cerr << "Glib::Regex::create() failed: " << ex.what() << std::endl;
     return false;
   }
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  check = Glib::Regex::create(regex, static_cast<Glib::RegexCompileFlags>(0), static_cast<Glib::RegexMatchFlags>(0), ex);
-  if(ex.get())
-  {
-    std::cerr << "Glib::Regex::create() failed: " << ex->what() << std::endl;
-    return false;
-  }
-  #endif
 
   if(!check && 0 == get_tokens_instance().size())
     return false;
diff --git a/tests/import/test_signals.cc b/tests/import/test_signals.cc
index a70b826..33304fc 100644
--- a/tests/import/test_signals.cc
+++ b/tests/import/test_signals.cc
@@ -106,7 +106,6 @@ int main(int argc, char* argv[])
          iter != encodings.end();
          ++iter)
     {
-      #ifdef GLIBMM_EXCEPTIONS_ENABLED
       try
       {
         while(parser.on_idle_parse())
@@ -118,12 +117,6 @@ int main(int argc, char* argv[])
       {
         std::cout << exception.what() << std::endl;
       }
-      #else
-      while(parser.on_idle_parse())
-      {}
-
-      parser.clear();
-      #endif
 
       parser.set_encoding((*iter).c_str());
     }
diff --git a/tests/import/utils.cc b/tests/import/utils.cc
index 421511e..a19994e 100644
--- a/tests/import/utils.cc
+++ b/tests/import/utils.cc
@@ -24,23 +24,14 @@ static std::string create_file_from_buffer(const char* input, guint input_size)
     close(tmp_file_handle);
 
   std::string file_uri;
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   //TODO: Catch exception.
   file_uri = Glib::filename_to_uri(tmp_filename);
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  file_uri = Glib::filename_to_uri(tmp_filename, ex);
-  #endif //GLIBMM_EXCEPTIONS_ENABLED
   
   Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(file_uri);
   
   gssize result = 0;
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   //TODO: Catch exception.
   result = file->append_to()->write(input, input_size);
-  #else
-  result = file->append_to(Gio::FILE_CREATE_NONE, ex)->write(input, input_size, ex);
-  #endif
   g_return_val_if_fail(-1 < result, "");
 
   return file_uri;
@@ -107,13 +98,8 @@ bool run_parser_from_buffer(const FuncConnectParserSignals& connect_parser_signa
 
   Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(file_uri);
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   //TODO: Catch exception.
   const bool removed = file->remove();
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  const bool removed = file->remove(ex);
-  #endif 
   g_assert(removed);
 
   return finished_parsing;
diff --git a/tests/test_document_load.cc b/tests/test_document_load.cc
index 9510ad8..c4fb752 100644
--- a/tests/test_document_load.cc
+++ b/tests/test_document_load.cc
@@ -47,7 +47,6 @@ int main()
   // Get a URI for a test file:
   Glib::ustring uri;
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     const std::string path = 
@@ -60,10 +59,6 @@ int main()
     std::cerr << "Exception from Glib::filename_to_uri(): " << ex.what();
     return EXIT_FAILURE;
   }
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  uri = Glib::filename_to_uri("/usr/share/glom/doc/examples/example_music_collection.glom", ex);
-  #endif
 
   //std::cout << "URI=" << uri << std::endl;
 
diff --git a/tests/test_selfhosting_new_from_example.cc b/tests/test_selfhosting_new_from_example.cc
index 81cb508..0ccfeed 100644
--- a/tests/test_selfhosting_new_from_example.cc
+++ b/tests/test_selfhosting_new_from_example.cc
@@ -113,7 +113,6 @@ int main()
   // Get a URI for a test file:
   Glib::ustring uri;
 
-  #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
     const std::string path = 
@@ -126,10 +125,6 @@ int main()
     std::cerr << "Exception from Glib::filename_to_uri(): " << ex.what();
     return EXIT_FAILURE;
   }
-  #else
-  std::auto_ptr<Glib::Error> ex;
-  uri = Glib::filename_to_uri("/usr/share/glom/doc/examples/example_music_collection.glom", ex);
-  #endif
 
   //std::cout << "URI=" << uri << std::endl;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]