diff --git a/config/Makefile.win32 b/config/Makefile.win32
index 4c2d5bb0e3ad718fa1621b579ff26b92c7ec2d18..f04118592269b6d2f73227c2e978fdaeb9e17a26 100644
--- a/config/Makefile.win32
+++ b/config/Makefile.win32
@@ -106,7 +106,7 @@ CILIBS        =
 CRYPTLIBS     =
 
 # Fortran:
-ifeq ($(F77),build/win/f77.sh)
+ifneq ($(findstring build/win/f77.sh,$(F77)),)
 F77           = $(ROOT_SRCDIR)/build/win/f77.sh
 F77FLAGS      = -nologo -4Nportlib $(BLDF77FLAGS) -recursive
 F77LDFLAGS    = $(F77FLAGS) $(F77OPT) -link $(LDFLAGS)
@@ -125,5 +125,5 @@ showld:
 	@echo "$(LD)"
 
 showf77:
-	@echo "$(F77)"
+	@echo "$(ROOT_SRCDIR)/build/win/f77.sh"
 endif
diff --git a/config/root-config.in b/config/root-config.in
index eb8e46e01ca706ce25f07485c3b83ca853f8582c..614553b6069f34c05f058d64f45ad66195af6e6f 100755
--- a/config/root-config.in
+++ b/config/root-config.in
@@ -392,9 +392,6 @@ hiux)
    ;;
 win32)
    # Win32
-   altcc=cl
-   altcxx=cl
-   altld=link
    auxcflags="-MD"
    if test "x@winrtdebug@" = "xyes"; then
 	  auxcflags="-MDd"
diff --git a/configure b/configure
index 26300fbaf54417adc0545dea46ff029d68113fab..902660a3a4bf34f9bcac35afdee1ad6b51047afd 100755
--- a/configure
+++ b/configure
@@ -900,10 +900,18 @@ check_comp() {
             else
                 altcc=`grep '^CC ' ${ac_srcdir}/config/Makefile.$arch | awk '{ if (NF==3) {print $3; exit 0} }'`
             fi
+            if test "x$arch" = "xwin32" ; then
+                altccorg="cl"
+                altcctmp="$altcc"
+                altcc="$altccorg"
+            fi
         fi
         altcc1=`echo "$altcc" | awk '{print $1}'`
         if `$cwhich $altcc1 > /dev/null 2>&1` ; then
             found_comp=1
+            if test ! "x$altcctmp" = "x" ; then
+                altcc="$altcctmp"
+            fi
             result "$altcc"
         else
             nocomp="$altcc"
@@ -916,10 +924,18 @@ check_comp() {
             else
                 altcxx=`grep '^CXX ' ${ac_srcdir}/config/Makefile.$arch | awk '{ if (NF==3) {print $3; exit 0} }'`
             fi
+            if test "x$arch" = "xwin32" ; then
+                altcxxorg="cl"
+                altcxxtmp="$altcxx"
+                altcxx="$altcxxorg"
+            fi
         fi
         altcxx1=`echo "$altcxx" | awk '{print $1}'`
         if `$cwhich $altcxx1 > /dev/null 2>&1` ; then
             found_comp=1
+            if test ! "x$altcxxtmp" = "x" ; then
+                altcxx="$altcxxtmp"
+            fi
             result "$altcxx"
         else
             nocomp="$altcxx"
@@ -5923,8 +5939,8 @@ sed -e "s|@aclocaldir@|$aclocaldir|"            \
     -e "s|@bindir@|$bindir|"                    \
     -e "s|@buildasimage@|$enable_asimage|"      \
     -e "s|@builtinafterimage@|$enable_builtin_afterimage|"  \
-    -e "s|@buildftgl@|$enable_builtin_ftgl|"      \
-    -e "s|@buildglew@|$enable_builtin_glew|"      \
+    -e "s|@buildftgl@|$enable_builtin_ftgl|"    \
+    -e "s|@buildglew@|$enable_builtin_glew|"    \
     -e "s|@builtinfreetype@|$enable_builtin_freetype|"      \
     -e "s|@builtinpcre@|$enable_builtin_pcre|"  \
     -e "s|@buildxrd@|$buildxrd|"                \
@@ -6287,6 +6303,16 @@ if test "$prefix2" = "\$(ROOTSYS)" ; then
     mandir2=\$ROOTSYS/man/man1
 fi
 
+if test ! "x$altccorg" = "x" ; then
+    altcc2="$altccorg"
+else
+    altcc2="$altcc"
+fi
+if test ! "x$altcxxorg" = "x" ; then
+    altcxx2="$altcxxorg"
+else
+    altcxx2="$altcxx"
+fi
 if test ! "x$altf77org" = "x" ; then
     altf772="$altf77org"
 else
@@ -6312,8 +6338,8 @@ sed -e "s|@architecture@|$arch|"           \
     -e "s|@pythonvers@|$pythonvers|"       \
     -e "s|@alloclibdir@|$alloclibdir|"     \
     -e "s|@alloclib@|$alloclib|"           \
-    -e "s|@altcc@|$altcc|"                 \
-    -e "s|@altcxx@|$altcxx|"               \
+    -e "s|@altcc@|$altcc2|"                \
+    -e "s|@altcxx@|$altcxx2|"              \
     -e "s|@altf77@|$altf772|"              \
     -e "s|@altld@|$altld2|"                \
    < root-config.tmp > $RCONFOUT