diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
index 8e285b19872c..ab15e01b53c9 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -492,6 +492,8 @@ static void add_undef_import( const char *name, int is_ordinal )
     while (*name >= '0' && *name <= '9') ordinal = 10 * ordinal + *name++ - '0';
     if (*name++ != '$') return;
 
+    if (!use_msvcrt && find_name( name, stdc_functions )) return;
+
     import = add_static_import_dll( dll_name );
     if (is_ordinal)
         add_import_func( import, NULL, xstrdup( name ), ordinal, 0 );
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index 38900103a97f..940eaeb52798 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -1408,18 +1408,28 @@ static void build(struct options* opts)
 		strarray_add(&link_args, name);
 		break;
 	    case 'a':
-                if (is_pe && !opts->use_msvcrt && !opts->lib_suffix && strchr(name, '/'))
+                if (!opts->use_msvcrt && !opts->lib_suffix && strchr(name, '/'))
                 {
                     /* turn the path back into -Ldir -lfoo options
                      * this makes sure that we use the specified libs even
                      * when mingw adds its own import libs to the link */
                     const char *p = get_basename( name );
 
-                    if (!strncmp( p, "lib", 3 ) && strcmp( p, "libmsvcrt.a" ))
+                    if (is_pe)
                     {
-                        strarray_add(&link_args, strmake("-L%s", get_dirname(name) ));
-                        strarray_add(&link_args, strmake("-l%s", get_basename_noext( p + 3 )));
-                        break;
+                        if (!strncmp( p, "lib", 3 ) && strcmp( p, "libmsvcrt.a" ))
+                        {
+                            strarray_add(&link_args, strmake("-L%s", get_dirname(name) ));
+                            strarray_add(&link_args, strmake("-l%s", get_basename_noext( p + 3 )));
+                            break;
+                        }
+                    }
+                    else
+                    {
+                        /* don't link to ntdll or ntoskrnl in non-msvcrt mode
+                         * since they export CRT functions */
+                        if (!strcmp( p, "libntdll.a" )) break;
+                        if (!strcmp( p, "libntoskrnl.a" )) break;
                     }
                 }
 		strarray_add(&link_args, name);
