diff --git a/gnome/src/imwindow.c b/gnome/src/imwindow.c
index f501e8fe965bbca6a7fdf03a62092ba50835db55..8d5c07f2ebb5818fceddfece851b056ef5d7d4ad 100644
--- a/gnome/src/imwindow.c
+++ b/gnome/src/imwindow.c
@@ -38,11 +38,23 @@
 #include <imwindow.h>
 #include <contacts/calltab.h>
 #include <contacts/calltab.h>
+#include <sys/stat.h>
 
 /** Local variables */
 static GtkWidget *im_window = NULL;
 static GtkWidget *im_notebook = NULL;
 
+
+static void im_window_init();
+
+static GtkWindow *im_window_get()
+{
+    if (im_window == NULL)
+        im_window_init();
+
+    return GTK_WINDOW(im_window);
+}
+
 static gboolean window_configure_cb (GtkWidget *wini UNUSED, GdkEventConfigure *event)
 {
     int pos_x, pos_y;
@@ -50,7 +62,7 @@ static gboolean window_configure_cb (GtkWidget *wini UNUSED, GdkEventConfigure *
     eel_gconf_set_integer (CONF_IM_WINDOW_WIDTH, event->width);
     eel_gconf_set_integer (CONF_IM_WINDOW_HEIGHT, event->height);
 
-    gtk_window_get_position (GTK_WINDOW (im_window_get()), &pos_x, &pos_y);
+    gtk_window_get_position (im_window_get(), &pos_x, &pos_y);
     eel_gconf_set_integer (CONF_IM_WINDOW_POSITION_X, pos_x);
     eel_gconf_set_integer (CONF_IM_WINDOW_POSITION_Y, pos_y);
 
@@ -106,7 +118,9 @@ im_window_init()
     gtk_container_set_border_width (GTK_CONTAINER (im_window), 0);
     gtk_window_set_title (GTK_WINDOW (im_window), window_title);
     gtk_window_set_default_size (GTK_WINDOW (im_window), width, height);
-    gtk_window_set_default_icon_from_file (LOGO, NULL);
+    struct stat st;
+    if (!stat(LOGO, &st))
+        gtk_window_set_default_icon_from_file (LOGO, NULL);
     gtk_window_set_position (GTK_WINDOW (im_window), GTK_WIN_POS_MOUSE);
 
     gtk_widget_set_name (im_window, "imwindow");
@@ -129,20 +143,9 @@ im_window_init()
     gtk_window_move (GTK_WINDOW (im_window), position_x, position_y);
 }
 
-GtkWidget *
-im_window_get()
-{
-    if (im_window == NULL)
-        im_window_init();
-
-    return im_window;
-}
-
-
 gboolean
 im_window_is_active ()
 {
-
     if (!im_window)
         return FALSE;
     else
@@ -152,13 +155,14 @@ im_window_is_active ()
 gboolean
 im_window_is_visible ()
 {
-    return gtk_widget_get_visible (im_window);
+    return gtk_widget_get_visible (GTK_WIDGET(im_window_get()));
 }
 
+
 void
 im_window_show ()
 {
-    gtk_window_present (GTK_WINDOW (im_window_get ()));
+    gtk_window_present (im_window_get ());
 }
 
 void
@@ -169,7 +173,7 @@ im_window_add (GtkWidget *widget)
         im_window_add_tab (widget);
 
         /* Show it all */
-        gtk_widget_show_all (im_window);
+        gtk_widget_show_all (GTK_WIDGET(im_window_get()));
     } 
     else {
         ERROR ("InstantMessaging: Error: Could not create the main instant messaging window");
diff --git a/gnome/src/imwindow.h b/gnome/src/imwindow.h
index f0d1de2e0774a4da3eb11345c69952cd2084cc40..1a3ab3f1cf801b77a7b70c6e596fca060199e602 100644
--- a/gnome/src/imwindow.h
+++ b/gnome/src/imwindow.h
@@ -42,12 +42,6 @@
   * @brief The IM window of the client.
   */
 
-/*! @function
- * Display the IM window
- * @return GtkWidget* The IM window
- */
-GtkWidget *im_window_get();
-
 /*!	@function
 @abstract	Add IM widget to the IM window
  */
diff --git a/gnome/src/mainwindow.c b/gnome/src/mainwindow.c
index 66b201fd5f533968a125a0e0d64ea7b51d700e49..18f917172a01d124b41fc1977f151db8a0adb8fc 100644
--- a/gnome/src/mainwindow.c
+++ b/gnome/src/mainwindow.c
@@ -44,6 +44,7 @@
 #include <widget/minidialog.h>
 #include "uimanager.h"
 
+#include <sys/stat.h>
 #include <gtk/gtk.h>
 #include <eel-gconf-extensions.h>
 
@@ -200,7 +201,9 @@ create_main_window ()
     gtk_container_set_border_width (GTK_CONTAINER (window), 0);
     gtk_window_set_title (GTK_WINDOW (window), window_title);
     gtk_window_set_default_size (GTK_WINDOW (window), width, height);
-    gtk_window_set_default_icon_from_file (LOGO, NULL);
+    struct stat st;
+    if (!stat(LOGO, &st))
+        gtk_window_set_default_icon_from_file (LOGO, NULL);
     gtk_window_set_position (GTK_WINDOW (window) , GTK_WIN_POS_MOUSE);
 
     /* Connect the destroy event of the window with our on_destroy function
diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c
index 0ca3b4fdc8ffc2f65a100040d2dcab2c79d4b998..e3c2f44e27951bc91d5971e0164450ffa0012bdf 100644
--- a/gnome/src/uimanager.c
+++ b/gnome/src/uimanager.c
@@ -53,6 +53,8 @@
 #include "accountlist.h"
 #include "config/accountlistconfigdialog.h"
 
+#include <sys/stat.h>
+
 void show_edit_number (callable_obj_t *call);
 
 static GtkWidget *toolbar;
@@ -1731,12 +1733,13 @@ show_edit_number (callable_obj_t *call)
 
 }
 
-GtkWidget*
+static GtkWidget*
 create_waiting_icon()
 {
-    GtkWidget * waiting_icon;
-    waiting_icon = gtk_image_menu_item_new_with_label ("");
-    gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (waiting_icon),
+    GtkWidget * waiting_icon = gtk_image_menu_item_new_with_label ("");
+    struct stat st;
+    if (!stat(ICONS_DIR "/wait-on.gif", &st))
+        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (waiting_icon),
                                    gtk_image_new_from_animation (gdk_pixbuf_animation_new_from_file (
                                            ICONS_DIR "/wait-on.gif", NULL)));
     gtk_menu_item_set_right_justified (GTK_MENU_ITEM (waiting_icon), TRUE);