diff --git a/configure b/configure
index 8836c99..37e1061 100755
--- a/configure
+++ b/configure
@@ -704,6 +704,8 @@
 LINTFLAGS
 FONTFORGE
 PKG_CONFIG
+RSVG
+ICOTOOL
 PRELINK
 LIBPTHREAD
 XLIB
@@ -6352,6 +6354,98 @@
 done
 test -n "$PKG_CONFIG" || PKG_CONFIG="false"
 
+for ac_prog in rsvg
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_RSVG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$RSVG"; then
+  ac_cv_prog_RSVG="$RSVG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_RSVG="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+RSVG=$ac_cv_prog_RSVG
+if test -n "$RSVG"; then
+  { echo "$as_me:$LINENO: result: $RSVG" >&5
+echo "${ECHO_T}$RSVG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$RSVG" && break
+done
+test -n "$RSVG" || RSVG="false"
+
+for ac_prog in icotool
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ICOTOOL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ICOTOOL"; then
+  ac_cv_prog_ICOTOOL="$ICOTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ICOTOOL="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ICOTOOL=$ac_cv_prog_ICOTOOL
+if test -n "$ICOTOOL"; then
+  { echo "$as_me:$LINENO: result: $ICOTOOL" >&5
+echo "${ECHO_T}$ICOTOOL" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$ICOTOOL" && break
+done
+test -n "$ICOTOOL" || ICOTOOL="false"
+
+
+if test "${enable_maintainer_mode+set}" = set
+then
+  if test "$RSVG" = "false"; then wine_warnings="$wine_warnings|rsvg is missing, icons can't be rebuilt."; fi
+  if test "$ICOTOOL" = "false"; then wine_warnings="$wine_warnings|icotool is missing, icons can't be rebuilt."; fi
+fi
 
 case $host_cpu in
   *i[3456789]86*)
@@ -23180,6 +23274,8 @@
 LINTFLAGS!$LINTFLAGS$ac_delim
 FONTFORGE!$FONTFORGE$ac_delim
 PKG_CONFIG!$PKG_CONFIG$ac_delim
+RSVG!$RSVG$ac_delim
+ICOTOOL!$ICOTOOL$ac_delim
 PRELINK!$PRELINK$ac_delim
 LIBPTHREAD!$LIBPTHREAD$ac_delim
 XLIB!$XLIB$ac_delim
@@ -23249,7 +23345,7 @@
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 74; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 76; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
