diff --git a/configure b/configure
index 8cd653f05e08a53406729d45f82a46deced7e66c..17b86a327ee0fa1dcaf96ec125e91bbdd820f570 100755
--- a/configure
+++ b/configure
@@ -10237,7 +10237,7 @@ else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 #include "confdefs.h"
-void ac_asm(void) { asm(".string \"test\""); }
+void ac_asm(void) { asm(".data\n\t.string \"test\"\n\t.text"); }
 
 #ifdef F77_DUMMY_MAIN
 #  ifdef __cplusplus
diff --git a/configure.ac b/configure.ac
index 315ddc79126132a21b9f6ea4dc0dbcb307fd4da2..cf686c836c68e6223e527fa4a7733478180c8854 100644
--- a/configure.ac
+++ b/configure.ac
@@ -743,7 +743,8 @@ fi
 dnl **** Check for .string in assembler ****
 
 AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string,
-    WINE_TRY_ASM_LINK([".string \"test\""],,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
+    WINE_TRY_ASM_LINK([".data\n\t.string \"test\"\n\t.text"],,,
+                      ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
 if test "$ac_cv_c_asm_string" = "yes"
 then
   AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])