diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 4625c62280739f69f8d65ad60bbe398a58cd91dd..6259229a25e084ea6c6b62e0608f62690ec60a5c 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,7 @@
+2012-09-15  Tobias Burnus  <burnus@net-b.de>
+
+	* trans-io.c (gfc_trans_transfer): Add an assert.
+
 2012-09-15  Tobias Burnus  <burnus@net-b.de>
 
 	* arith.c (arith_power): Call gfc_free_expr in case of error.
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index e607e2debe5d2af47395f9886667a06cb861550e..940129eb05f09cfb4e19d5db685d8a18655b32a8 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -2317,6 +2317,7 @@ gfc_trans_transfer (gfc_code * code)
     tmp = gfc_finish_block (&body);
   else
     {
+      gcc_assert (expr->rank != 0);
       gcc_assert (se.ss == gfc_ss_terminator);
       gfc_trans_scalarizing_loops (&loop, &body);