diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b84ffc8..648b341 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,12 @@
 2015-01-14  Pedro Alves  <palves@redhat.com>

+	PR gdb/17525
+	* breakpoint.c: Include "interps.h".
+	(bpstat_do_actions_1): Also check whether the interpreter is
+	async.
+
+2015-01-14  Pedro Alves  <palves@redhat.com>
+
 	PR cli/17828
 	* infrun.c (reinstall_readline_callback_handler_cleanup): Don't
 	reinstall if the interpreter is sync.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7e74501..2f747b5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,4 +1,12 @@
 2015-01-14  Pedro Alves  <palves@redhat.com>
+	    Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/17525
+	* gdb.base/bp-cmds-execution-x-script.c: New file.
+	* gdb.base/bp-cmds-execution-x-script.exp: New file.
+	* gdb.base/bp-cmds-execution-x-script.gdb: New file.
+
+2015-01-14  Pedro Alves  <palves@redhat.com>

 	PR cli/17828
 	* gdb.base/batch-preserve-term-settings.c: New file.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index c64c2a9..af0c2cf 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -66,7 +66,7 @@
 #include "skip.h"
 #include "ax-gdb.h"
 #include "dummy-frame.h"
-
+#include "interps.h"
 #include "format.h"

 /* readline include files */
@@ -4635,7 +4635,7 @@ bpstat_do_actions_1 (bpstat *bsp)

       if (breakpoint_proceeded)
 	{
-	  if (target_can_async_p ())
+	  if (interpreter_async && target_can_async_p ())
 	    /* If we are in async mode, then the target might be still
 	       running, not stopped at any breakpoint, so nothing for
 	       us to do here -- just return to the event loop.  */
diff --git a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
new file mode 100644
index 0000000..f7101b6
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
@@ -0,0 +1,35 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2015 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+int
+increment (int i)
+{
+  return i + 1;
+}
+
+#define N_INCR 20
+
+int
+main (void)
+{
+  int val = 1;
+  int j;
+
+  for (j = 0; j < N_INCR; j++)
+    val = increment (val);
+  return val == N_INCR;
+}
diff --git a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
new file mode 100644
index 0000000..e75a4fd
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
@@ -0,0 +1,75 @@
+# Copyright 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+# Test that GDB isn't silent if it fails to remove a breakpoint from
+# the main program, independently of whether the program was loaded
+# with "file PROGRAM" or directly from the command line with "gdb
+# PROGRAM".
+
+# Test that execution commands in a GDB script file run through -x
+# work as expected.  Specifically, the scripts creates a breakpoint
+# that has "continue" in its command list, and then does "run".
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+set x_file ${srcdir}/${subdir}/$testfile.gdb
+
+global GDBFLAGS
+set saved_gdbflags $GDBFLAGS
+
+# Run the test proper.
+
+proc test {} {
+    global inferior_exited_re
+    global binfile
+    global gdb_prompt
+    global saved_gdbflags GDBFLAGS
+    global x_file
+
+    gdb_exit
+
+    set GDBFLAGS "$GDBFLAGS -x $x_file $binfile"
+
+    set GDBFLAGS $saved_gdbflags
+    append GDBFLAGS " -ex \"set height unlimited\""
+    append GDBFLAGS " -x \"$x_file\""
+    append GDBFLAGS " --args \"$binfile\""
+
+    set test "run to end"
+
+    gdb_exit
+    set res [gdb_spawn]
+    if { $res != 0} {
+	fail $test
+	return -1
+    }
+
+    gdb_test_multiple "" $test {
+	-re "$inferior_exited_re normally.*$gdb_prompt $" {
+	    pass $test
+	}
+	-re "Don't know how to run.*$gdb_prompt $" {
+	    unsupported $test
+	}
+    }
+}
+
+test
+
+set GDBFLAGS $saved_gdbflags
diff --git a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
new file mode 100644
index 0000000..6d5b4e4
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
@@ -0,0 +1,20 @@
+# Copyright 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+break increment
+commands
+   cont
+end
+run
