--- a/configure.ac
+++ b/configure.ac
@@ -23,14 +23,6 @@
 AM_CONFIG_HEADER(config.h)
 AC_PROG_LIBTOOL
 
-if $CONFIG_SHELL ./libtool --features | grep "enable shared" >/dev/null 2>&1; then :; else
-	if test "$enable_shared" = no; then
-		AC_MSG_ERROR([streamtuner requires shared libraries: do not use --disable-shared])
-	else
-		AC_MSG_ERROR([streamtuner requires shared libraries but the target system does not support them])
-	fi
-fi
-
 ### i18n
 
 GETTEXT_PACKAGE=AC_PACKAGE_NAME
@@ -49,9 +41,6 @@
 
 # check for ANSI C headers
 AC_HEADER_STDC
-if test $ac_cv_header_stdc != yes; then
-	AC_MSG_ERROR([ANSI C headers not present])
-fi
 
 ### build dependencies
 
@@ -62,7 +51,7 @@
 
 AM_PATH_GTK_2_0(2.4.0,, [AC_MSG_ERROR([unable to find the GTK+ library])])
 
-AM_PATH_CURL(7.10.8,, [AC_MSG_ERROR([unable to find the libcurl library])])
+PKG_CHECK_MODULES([CURL], [libcurl >= 7.10.8])
 
 if ST_FEATURE_ENABLED(xiph); then
 	PKG_CHECK_MODULES(LIBXML, libxml-2.0,, [ST_FEATURE_DISABLE(xiph, [libxml not found])])
@@ -70,7 +59,7 @@
 
 if ST_FEATURE_ENABLED(local); then
 	if ST_FEATURE_ENABLED(local-metadata); then
-		AM_PATH_TAGLIB_C(1.2,, [ST_FEATURE_DISABLE(local-metadata, [TagLib not found])])
+		PKG_CHECK_MODULES([TAGLIB], [taglib_c])
 	fi
 else
 	if ST_FEATURE_ENABLED(local-metadata); then
--- a/data/streamtuner.pc.in
+++ b/data/streamtuner.pc.in
@@ -1,9 +1,8 @@
 prefix=@prefix@
 includedir=@includedir@/streamtuner
-oldincludedir=@includedir@
 
 Name: @PACKAGE@
 Description: A stream directory browser
 Version: @VERSION@
 Requires: gmodule-2.0 gtk+-2.0
-Cflags: -I${includedir} -I${oldincludedir}
+Cflags: -I${includedir}
--- a/docs/gtk-doc.make
+++ b/docs/gtk-doc.make
@@ -95,7 +95,7 @@
 	rm -rf $(srcdir)/html 
 	mkdir $(srcdir)/html
 	cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-	sed -i "" -e \
+	sed -i -e \
 		's/background: #ffeeee/background: #daffd1/g; \
 		 s/border: solid 1px #ffaaaa/border: solid 1px #74ff54/g; \
 		 s/background: #eeeeff/background: #feffde/g; \
--- a/help/omf.make
+++ b/help/omf.make
@@ -42,7 +42,9 @@
 	for file in $(omffile); do \
 		$(INSTALL_DATA) $(srcdir)/$$file.out $(DESTDIR)$(omf_dest_dir)/$$file; \
 	done
-	-scrollkeeper-update -p $(scrollkeeper_localstate_dir) -o $(DESTDIR)$(omf_dest_dir)
+	if test -z "$(DESTDIR)"; then \
+		scrollkeeper-update -p $(DESTDIR)$(scrollkeeper_localstate_dir) -o $(DESTDIR)$(omf_dest_dir); \
+	fi
 
 uninstall-local-omf:
 	-for file in $(srcdir)/*.omf; do \
--- a/src/sglib/Makefile.am
+++ b/src/sglib/Makefile.am
@@ -6,6 +6,5 @@
 	sg-parser.h				\
 	sg-util.c				\
 	sg-util.h
-libsglib_la_LDFLAGS = -static
 
 AM_CPPFLAGS = $(WARN_CFLAGS) $(GLIB_CFLAGS)
--- a/src/sgtk/Makefile.am
+++ b/src/sgtk/Makefile.am
@@ -21,7 +21,6 @@
 	sgtk-util.h
 nodist_libsgtk_la_SOURCES =			\
 	$(top_srcdir)/art/auth.h
-libsgtk_la_LDFLAGS = -static
 
 AM_CPPFLAGS = $(WARN_CFLAGS) $(GTK_CFLAGS) \
 	-I$(top_srcdir)/src/sglib
--- a/src/streamtuner/st-category-store.c
+++ b/src/streamtuner/st-category-store.c
@@ -356,7 +356,6 @@
 {
   STCategoryBag **bag = data;
   STCategoryBag *this_bag;
-  gboolean status;
 
   gtk_tree_model_get(model, iter, ST_CATEGORY_STORE_COLUMN_BAG, &this_bag, -1);
   if (! ST_CATEGORY_BAG_IS_STOCK(this_bag)
@@ -376,8 +375,6 @@
       g_object_unref(this_bag);
       return FALSE;		/* continue */
     }
-
-  return status;
 }
 
 static gboolean
--- a/src/streamtuner/st-network-preferences-page.c
+++ b/src/streamtuner/st-network-preferences-page.c
@@ -183,10 +183,10 @@
   st_preferences_bind_boolean(GTK_TOGGLE_BUTTON(page->priv->proxy_check),
 			      &st_settings.proxy_enabled);
   st_preferences_bind_int_radio(GTK_RADIO_BUTTON(page->priv->http_radio),
-				(int *) &st_settings.proxy_type,
+				&st_settings.proxy_type,
 				ST_TRANSFER_PROXY_HTTP);
   st_preferences_bind_int_radio(GTK_RADIO_BUTTON(page->priv->socks5_radio),
-				(int *) &st_settings.proxy_type,
+				&st_settings.proxy_type,
 				ST_TRANSFER_PROXY_SOCKS5);
   st_preferences_bind_string(GTK_ENTRY(page->priv->server_entry),
 			     &st_settings.proxy_server);
--- a/src/streamtuner/st-preferences.c
+++ b/src/streamtuner/st-preferences.c
@@ -140,13 +140,13 @@
 }
 
 void
-st_preferences_bind_int_radio (GtkRadioButton *radio, int *ptr, int value)
+st_preferences_bind_int_radio (GtkRadioButton *radio, void *ptr, int value)
 {
   g_return_if_fail(GTK_IS_RADIO_BUTTON(radio));
   g_return_if_fail(ptr != NULL);
 
   g_object_set_data(G_OBJECT(radio), "value", GINT_TO_POINTER(value));
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), value == *ptr);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), value == *(int *)ptr);
   g_signal_connect(radio, "toggled", G_CALLBACK(st_preferences_radio_toggled_h), ptr);
 }
 
--- a/src/streamtuner/st-preferences.h
+++ b/src/streamtuner/st-preferences.h
@@ -42,7 +42,7 @@
 void st_preferences_bind_int_spin	(GtkSpinButton		*spin,
 					 int			*ptr);
 void st_preferences_bind_int_radio	(GtkRadioButton		*radio,
-					 int			*ptr,
+					 void			*ptr,
 					 int			value);
 
 #endif /* _ST_PREFERENCES_H */
--- a/src/streamtuner/st-shell.c
+++ b/src/streamtuner/st-shell.c
@@ -465,8 +465,10 @@
 static void
 st_shell_make_window (STShell *shell)
 {
+  union { GtkWidget **wpp; gpointer *gpp; }pun = { &shell->priv->window };
+
   shell->priv->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-  g_object_add_weak_pointer(G_OBJECT(shell->priv->window), (gpointer *) &shell->priv->window);
+  g_object_add_weak_pointer(G_OBJECT(shell->priv->window), pun.gpp);
 
   shell->priv->accel_group = gtk_accel_group_new();
   gtk_window_add_accel_group(GTK_WINDOW(shell->priv->window), shell->priv->accel_group);
@@ -1786,8 +1788,10 @@
     gtk_window_present(GTK_WINDOW(shell->priv->find));
   else
     {
+      union { GtkWidget **wpp; gpointer *gpp; }pun = { &shell->priv->find };
+
       shell->priv->find = sgtk_find_dialog_new(GTK_WINDOW(shell->priv->window));
-      g_object_add_weak_pointer(G_OBJECT(shell->priv->find), (gpointer *) &shell->priv->find);
+      g_object_add_weak_pointer(G_OBJECT(shell->priv->find), pun.gpp);
 
       sgtk_find_dialog_set_token(SGTK_FIND_DIALOG(shell->priv->find), st_settings.find_token ? st_settings.find_token : "");
       sgtk_find_dialog_set_history(SGTK_FIND_DIALOG(shell->priv->find), st_settings.find_history);
@@ -2101,8 +2105,9 @@
     gtk_window_present(GTK_WINDOW(shell->priv->stream_properties));
   else
     {
+      union { GtkWidget **wpp; gpointer *gpp; }pun = { &shell->priv->stream_properties };
       shell->priv->stream_properties = st_stream_properties_dialog_new(GTK_WINDOW(shell->priv->window));
-      g_object_add_weak_pointer(G_OBJECT(shell->priv->stream_properties), (gpointer *) &shell->priv->stream_properties);
+      g_object_add_weak_pointer(G_OBJECT(shell->priv->stream_properties), pun.gpp);
 
       g_signal_connect(shell->priv->stream_properties,
 		       "response",
@@ -2161,9 +2166,10 @@
   else
     {
       STBrowserTab *selected_tab;
+      union { GtkWidget **wpp; gpointer *gpp; }pun = { &shell->priv->stream_columns };
 
       shell->priv->stream_columns = st_stream_columns_dialog_new(GTK_WINDOW(shell->priv->window));
-      g_object_add_weak_pointer(G_OBJECT(shell->priv->stream_columns), (gpointer *) &shell->priv->stream_columns);
+      g_object_add_weak_pointer(G_OBJECT(shell->priv->stream_columns), pun.gpp);
 
       selected_tab = st_shell_get_selected_tab(shell);
       if (selected_tab)
@@ -2195,8 +2201,10 @@
     gtk_window_present(GTK_WINDOW(shell->priv->about));
   else
     {
+     union { GtkWidget **wpp; gpointer *gpp; }pun = { &shell->priv->about };
+
       shell->priv->about = st_about_dialog_new(GTK_WINDOW(shell->priv->window));
-      g_object_add_weak_pointer(G_OBJECT(shell->priv->about), (gpointer *) &shell->priv->about);
+      g_object_add_weak_pointer(G_OBJECT(shell->priv->about), pun.gpp);
 
       g_signal_connect(shell->priv->about,
 		       "response",
@@ -2244,8 +2252,10 @@
 
   if (! shell->priv->preferences)
     {
+      union { GtkWidget **wpp; gpointer *gpp; }pun = { &shell->priv->preferences };
+
       shell->priv->preferences = st_preferences_dialog_new(GTK_WINDOW(shell->priv->window));
-      g_object_add_weak_pointer(G_OBJECT(shell->priv->preferences), (gpointer *) &shell->priv->preferences);
+      g_object_add_weak_pointer(G_OBJECT(shell->priv->preferences), pun.gpp);
     }
 
   if (handler)
