diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f488afc37bb7725a848f802c77c5f9dc4faebaa7..0234bede6f2d3aec477f84a3c7fbd15bed7c2949 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2012-03-03  Tobias Burnus  <burnus@net-b.de>
+
+	PR fortran/48820
+	* resolve.c (resolve_actual_arglist): Properly reset
+	assumed_type_expr_allowed.
+
 2012-03-03  Tobias Burnus  <burnus@net-b.de>
 
 	* lang.opt (Wc-binding-type): New flag.
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 618c6f56c8c08ae3d5ab0676686207388b4d08c9..b63a0c69e6a6e452fd2f52b7a8745dba3e518c98 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1833,7 +1833,7 @@ resolve_actual_arglist (gfc_actual_arglist *arg, procedure_type ptype,
           return FAILURE;
         }
     }
-  assumed_type_expr_allowed = true;
+  assumed_type_expr_allowed = false;
 
   return SUCCESS;
 }
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a4275d9d8674757f8a0e1a3badecc383cebf89c6..090be6120aac49f9f37088db3197228b2b335c01 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-03  Tobias Burnus  <burnus@net-b.de>
+
+	PR fortran/48820
+	* gfortran.dg/assumed_type_3.f90: Undo previous commit.
+
 2012-03-03  Tobias Burnus  <burnus@net-b.de>
 
 	* gfortran.dg/bind_c_dts_4.f03: Add dg-options -Wc-binding-type.
diff --git a/gcc/testsuite/gfortran.dg/assumed_type_3.f90 b/gcc/testsuite/gfortran.dg/assumed_type_3.f90
index 15619ce1b95d049347c91cfe0c491c4ec1d443fd..d88da34cf822955a383c209522bfbb3aa44a1596 100644
--- a/gcc/testsuite/gfortran.dg/assumed_type_3.f90
+++ b/gcc/testsuite/gfortran.dg/assumed_type_3.f90
@@ -5,11 +5,6 @@
 !
 ! Test TYPE(*)
 
-subroutine fourteen(x)
-  type(*) :: x
-  x = x ! { dg-error "Invalid expression with assumed-type variable" }
-end subroutine fourteen
-
 subroutine one(a) ! { dg-error "may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute" }
   type(*), value :: a
 end subroutine one
@@ -118,4 +113,7 @@ subroutine thirteen(x, y)
   print *, ubound(y, dim=x) ! { dg-error "must be INTEGER" }
 end subroutine thirteen
 
-
+subroutine fourteen(x)
+  type(*) :: x
+  x = x ! { dg-error "Invalid expression with assumed-type variable" }
+end subroutine fourteen