diff --git a/gnome/src/config/accountconfigdialog.c b/gnome/src/config/accountconfigdialog.c
index 8777ed792927660d5090a952e1a3e75b10b182ad..726c84743a9e91f883d8933ddf2a9d611f3c1052 100644
--- a/gnome/src/config/accountconfigdialog.c
+++ b/gnome/src/config/accountconfigdialog.c
@@ -1255,7 +1255,7 @@ void show_account_window(account_t * currentAccount)
     gtk_container_set_border_width(GTK_CONTAINER(dialog), 0);
 
     notebook = gtk_notebook_new();
-    gtk_box_pack_start(GTK_BOX(dialog->vbox), notebook, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(dialog)), notebook, TRUE, TRUE, 0);
     gtk_container_set_border_width(GTK_CONTAINER(notebook), 10);
     gtk_widget_show(notebook);
 
diff --git a/gnome/src/config/accountlistconfigdialog.c b/gnome/src/config/accountlistconfigdialog.c
index 3a2174005935d0615153c24cb7218933179ebf62..78724bda7f06a4228e6fcccd6528e655e9e46e79 100644
--- a/gnome/src/config/accountlistconfigdialog.c
+++ b/gnome/src/config/accountlistconfigdialog.c
@@ -592,7 +592,7 @@ show_account_list_config_dialog (void)
     gtk_window_set_resizable (GTK_WINDOW (accountListDialog), FALSE);
 
     gnome_main_section_new (_ ("Configured Accounts"), &accountFrame);
-    gtk_box_pack_start (GTK_BOX (accountListDialog->vbox), accountFrame , TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(accountListDialog)), accountFrame , TRUE, TRUE, 0);
     gtk_widget_show (accountFrame);
 
     /* Accounts tab */
@@ -604,7 +604,7 @@ show_account_list_config_dialog (void)
     status_bar = gtk_statusbar_new();
     gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (status_bar), FALSE);
     gtk_widget_show (status_bar);
-    gtk_box_pack_start (GTK_BOX (accountListDialog->vbox), status_bar, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(accountListDialog)), status_bar, TRUE, TRUE, 0);
 
     int number_accounts = account_list_get_registered_accounts ();
 
diff --git a/gnome/src/config/preferencesdialog.c b/gnome/src/config/preferencesdialog.c
index cb6abc8e78d94ef403e5466a95949b34d99987f3..ad7b03781d3b0aa65fccc4c8867a5f683ecb1cc9 100644
--- a/gnome/src/config/preferencesdialog.c
+++ b/gnome/src/config/preferencesdialog.c
@@ -384,8 +384,9 @@ show_preferences_dialog ()
     notebook = gtk_notebook_new ();
     gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE);
     gtk_box_pack_end (GTK_BOX (hbox), notebook, TRUE, TRUE, 0);
-    gtk_box_pack_start (GTK_BOX (dialog->vbox), hbox, TRUE, TRUE, 0);
-    gtk_widget_show_all (dialog->vbox);
+    GtkWidget *box = gtk_dialog_get_content_area(dialog);
+    gtk_box_pack_start (GTK_BOX (box), hbox, TRUE, TRUE, 0);
+    gtk_widget_show_all (box);
     gtk_container_set_border_width (GTK_CONTAINER (notebook), 10);
     gtk_widget_show (notebook);
 
diff --git a/gnome/src/config/tlsadvanceddialog.c b/gnome/src/config/tlsadvanceddialog.c
index 731948f2a5d08f540f2dbbd557b4492baeccbb01..2e68a41c0c03f321dc81cc79b91cef2f812bc8f8 100644
--- a/gnome/src/config/tlsadvanceddialog.c
+++ b/gnome/src/config/tlsadvanceddialog.c
@@ -60,7 +60,7 @@ void show_advanced_tls_options (GHashTable * properties)
 
     ret = gtk_vbox_new (FALSE, 10);
     gtk_container_set_border_width (GTK_CONTAINER (ret), 10);
-    gtk_box_pack_start (GTK_BOX (tlsDialog->vbox), ret, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(tlsDialog)), ret, FALSE, FALSE, 0);
 
     GtkWidget *frame, *table;
     gnome_main_section_new_with_table (_ ("TLS transport"), &frame, &table, 3, 13);
diff --git a/gnome/src/config/zrtpadvanceddialog.c b/gnome/src/config/zrtpadvanceddialog.c
index f4ee057d6d09b25c05c4562e988493c912b6ec57..3f9140788f39151efb599208a17cb1d00a3c94c4 100644
--- a/gnome/src/config/zrtpadvanceddialog.c
+++ b/gnome/src/config/zrtpadvanceddialog.c
@@ -36,27 +36,19 @@
 
 void show_advanced_zrtp_options (GHashTable * properties)
 {
-    GtkDialog * securityDialog;
-
-    GtkWidget * tableZrtp;
-    GtkWidget * enableHelloHash;
-    GtkWidget * enableSASConfirm;
-    GtkWidget * enableZrtpNotSuppOther;
-    GtkWidget * displaySasOnce;
-
-    gchar * curSasConfirm = "true";
-    gchar * curHelloEnabled = "true";
-    gchar * curZrtpNotSuppOther = "true";
-    gchar * curDisplaySasOnce = "false";
+    gboolean curSasConfirm = TRUE;
+    gboolean curHelloEnabled = TRUE;
+    gboolean curZrtpNotSuppOther = TRUE;
+    gboolean curDisplaySasOnce = FALSE;
 
     if (properties != NULL) {
-        curHelloEnabled = g_hash_table_lookup (properties, ACCOUNT_ZRTP_HELLO_HASH);
-        curSasConfirm = g_hash_table_lookup (properties, ACCOUNT_ZRTP_DISPLAY_SAS);
-        curZrtpNotSuppOther = g_hash_table_lookup (properties, ACCOUNT_ZRTP_NOT_SUPP_WARNING);
-        curDisplaySasOnce = g_hash_table_lookup (properties, ACCOUNT_DISPLAY_SAS_ONCE);
+        curHelloEnabled = !g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_ZRTP_HELLO_HASH), "true");
+        curSasConfirm = !g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_ZRTP_DISPLAY_SAS), "true");
+        curZrtpNotSuppOther = !g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_ZRTP_NOT_SUPP_WARNING), "true");
+        curDisplaySasOnce = !g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_DISPLAY_SAS_ONCE), "true");
     }
 
-    securityDialog = GTK_DIALOG	(gtk_dialog_new_with_buttons (_ ("ZRTP Options"),
+    GtkDialog *securityDialog = GTK_DIALOG	(gtk_dialog_new_with_buttons (_ ("ZRTP Options"),
                                  GTK_WINDOW (get_main_window()),
                                  GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
                                  GTK_STOCK_CANCEL,
@@ -69,33 +61,29 @@ void show_advanced_zrtp_options (GHashTable * properties)
     gtk_container_set_border_width (GTK_CONTAINER (securityDialog), 0);
 
 
-    tableZrtp = gtk_table_new (4, 2  , FALSE/* homogeneous */);
+    GtkWidget *tableZrtp = gtk_table_new (4, 2  , FALSE/* homogeneous */);
     gtk_table_set_row_spacings (GTK_TABLE (tableZrtp), 10);
     gtk_table_set_col_spacings (GTK_TABLE (tableZrtp), 10);
-    gtk_box_pack_start (GTK_BOX (securityDialog->vbox), tableZrtp, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(securityDialog)), tableZrtp, FALSE, FALSE, 0);
     gtk_widget_show (tableZrtp);
 
-    enableHelloHash = gtk_check_button_new_with_mnemonic (_ ("Send Hello Hash in S_DP"));
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableHelloHash),
-                                  g_strcasecmp (curHelloEnabled,"true") == 0 ? TRUE: FALSE);
+    GtkWidget *enableHelloHash = gtk_check_button_new_with_mnemonic (_ ("Send Hello Hash in S_DP"));
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableHelloHash), curHelloEnabled);
     gtk_table_attach (GTK_TABLE (tableZrtp), enableHelloHash, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
     gtk_widget_set_sensitive (GTK_WIDGET (enableHelloHash) , TRUE);
 
-    enableSASConfirm = gtk_check_button_new_with_mnemonic (_ ("Ask User to Confirm SAS"));
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableSASConfirm),
-                                  g_strcasecmp (curSasConfirm,"true") == 0 ? TRUE: FALSE);
+    GtkWidget *enableSASConfirm = gtk_check_button_new_with_mnemonic (_ ("Ask User to Confirm SAS"));
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableSASConfirm), curSasConfirm);
     gtk_table_attach (GTK_TABLE (tableZrtp), enableSASConfirm, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
     gtk_widget_set_sensitive (GTK_WIDGET (enableSASConfirm) , TRUE);
 
-    enableZrtpNotSuppOther = gtk_check_button_new_with_mnemonic (_ ("_Warn if ZRTP not supported"));
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableZrtpNotSuppOther),
-                                  g_strcasecmp (curZrtpNotSuppOther,"true") == 0 ? TRUE: FALSE);
+    GtkWidget *enableZrtpNotSuppOther = gtk_check_button_new_with_mnemonic (_ ("_Warn if ZRTP not supported"));
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableZrtpNotSuppOther), curZrtpNotSuppOther);
     gtk_table_attach (GTK_TABLE (tableZrtp), enableZrtpNotSuppOther, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
     gtk_widget_set_sensitive (GTK_WIDGET (enableZrtpNotSuppOther) , TRUE);
 
-    displaySasOnce = gtk_check_button_new_with_mnemonic (_ ("Display SAS once for hold events"));
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (displaySasOnce),
-                                  g_strcasecmp (curDisplaySasOnce,"true") == 0 ? TRUE: FALSE);
+    GtkWidget *displaySasOnce = gtk_check_button_new_with_mnemonic (_ ("Display SAS once for hold events"));
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (displaySasOnce), curDisplaySasOnce);
     gtk_table_attach (GTK_TABLE (tableZrtp), displaySasOnce, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
     gtk_widget_set_sensitive (GTK_WIDGET (displaySasOnce) , TRUE);
 
@@ -127,48 +115,34 @@ void show_advanced_zrtp_options (GHashTable * properties)
 
 void show_advanced_sdes_options (GHashTable * properties)
 {
-
-    GtkDialog * securityDialog;
-
-    GtkWidget * sdesTable;
-    GtkWidget * enableRtpFallback;
-    gchar * rtpFallback = "false";
-
+    gboolean rtpFallback = FALSE;
     if (properties != NULL) {
-        rtpFallback = g_hash_table_lookup (properties, ACCOUNT_SRTP_RTP_FALLBACK);
+        rtpFallback = !g_strcasecmp(g_hash_table_lookup (properties, ACCOUNT_SRTP_RTP_FALLBACK), "true");
     }
 
-    securityDialog = GTK_DIALOG	(gtk_dialog_new_with_buttons (_ ("SDES Options"),
-
+    GtkDialog *securityDialog = GTK_DIALOG(gtk_dialog_new_with_buttons (_ ("SDES Options"),
                                  GTK_WINDOW (get_main_window()),
                                  GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
-
                                  GTK_STOCK_CANCEL,
-
                                  GTK_RESPONSE_CANCEL,
-
                                  GTK_STOCK_SAVE,
-
                                  GTK_RESPONSE_ACCEPT,
-
                                  NULL));
 
     gtk_window_set_resizable(GTK_WINDOW (securityDialog), FALSE);
     gtk_container_set_border_width (GTK_CONTAINER (securityDialog), 0);
 
-    sdesTable = gtk_table_new (1, 2  , FALSE/* homogeneous */);
+    GtkWidget *sdesTable = gtk_table_new (1, 2  , FALSE/* homogeneous */);
     gtk_table_set_row_spacings (GTK_TABLE (sdesTable), 10);
     gtk_table_set_col_spacings (GTK_TABLE (sdesTable), 10);
-    gtk_box_pack_start (GTK_BOX (securityDialog->vbox), sdesTable, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(gtk_dialog_get_content_area(securityDialog)), sdesTable, FALSE, FALSE, 0);
     gtk_widget_show (sdesTable);
 
-    enableRtpFallback = gtk_check_button_new_with_mnemonic (_ ("Fallback on RTP on SDES failure"));
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableRtpFallback),
-                                  g_strcasecmp (rtpFallback,"true") == 0 ? TRUE: FALSE);
+    GtkWidget *enableRtpFallback = gtk_check_button_new_with_mnemonic (_ ("Fallback on RTP on SDES failure"));
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableRtpFallback), rtpFallback);
     gtk_table_attach (GTK_TABLE (sdesTable), enableRtpFallback, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
     gtk_widget_set_sensitive (GTK_WIDGET (enableRtpFallback) , TRUE);
 
-
     gtk_widget_show_all (sdesTable);
 
     gtk_container_set_border_width (GTK_CONTAINER (sdesTable), 10);
diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c
index 7b4a1b6a93cb1d03e7a564a463c4654f6081fd26..72cba2367670b84011f47d81d53fa6df6658a235 100644
--- a/gnome/src/uimanager.c
+++ b/gnome/src/uimanager.c
@@ -96,7 +96,7 @@ remove_from_toolbar(GtkWidget *widget)
 {
     /* We must ensure that a widget is a child of a container
      * before removing it. */
-    if (widget->parent == toolbar_)
+    if (gtk_widget_get_parent(widget) == toolbar_)
         gtk_container_remove(GTK_CONTAINER(toolbar_), widget);
 }
 
@@ -1479,7 +1479,7 @@ show_edit_number(callable_obj_t *call)
     g_signal_connect(G_OBJECT(edit_dialog_), "delete-event", G_CALLBACK(on_delete), NULL);
 
     GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(edit_dialog_)->vbox), hbox, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(edit_dialog_))), hbox, TRUE, TRUE, 0);
 
     // Set the number to be edited
     editable_num_ = gtk_entry_new();
@@ -1504,7 +1504,7 @@ show_edit_number(callable_obj_t *call)
     gtk_box_pack_start(GTK_BOX(hbox), ok, TRUE, TRUE, 0);
     g_signal_connect(ok, "clicked", G_CALLBACK(ok_cb), call);
 
-    gtk_widget_show_all(GTK_DIALOG(edit_dialog_)->vbox);
+    gtk_widget_show_all(gtk_dialog_get_content_area(GTK_DIALOG(edit_dialog_)));
 
     gtk_dialog_run(GTK_DIALOG(edit_dialog_));
 }
diff --git a/gnome/src/widget/gtkscrollbook.c b/gnome/src/widget/gtkscrollbook.c
index 0b481a5ef179b9577d67d83863dbaa5d9ee1e414..0135c953a407a37fbafad178a199c52c0a5dda6d 100644
--- a/gnome/src/widget/gtkscrollbook.c
+++ b/gnome/src/widget/gtkscrollbook.c
@@ -165,7 +165,7 @@ pidgin_scroll_book_add (GtkContainer *container, GtkWidget *widget)
     PidginScrollBook *scroll_book;
 
     g_return_if_fail (GTK_IS_WIDGET (widget));
-    g_return_if_fail (widget->parent == NULL);
+    g_return_if_fail (gtk_widget_get_parent(widget) == NULL);
 
     scroll_book = PIDGIN_SCROLL_BOOK (container);
     scroll_book->children = g_list_append (scroll_book->children, widget);
diff --git a/gnome/src/widget/minidialog.c b/gnome/src/widget/minidialog.c
index dd45a1dcf02868d8d8c030ad96c96ff908227757..82b3385a62d3c963195ef49c27928cc5b5ba45d6 100644
--- a/gnome/src/widget/minidialog.c
+++ b/gnome/src/widget/minidialog.c
@@ -132,7 +132,7 @@ struct _mini_dialog_button_clicked_cb_data {
 guint
 pidgin_mini_dialog_get_num_children (PidginMiniDialog *mini_dialog)
 {
-    return g_list_length (mini_dialog->contents->children);
+    return g_list_length(gtk_container_get_children(GTK_CONTAINER(mini_dialog->contents)));
 }
 
 static gboolean