diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 3632e9eb8b093f1015fce144bcef531109a97442..f31943c71f250a101dbe935c473f669aa09c1310 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-28  Steven Bosscher  <stevenb@suse.de>
+
+	PR fortran/24545
+	* interface.c (gfc_match_end_interface): Fix typo in 
+	INTERFACE_USER_OP case.
+
 2005-10-26  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
 	PR fortran/15586
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index 5314d87f9b0526436662596e10f8e04111609054..d8da617a9f7aa0e69a0075530118c92573fc1890 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -295,7 +295,7 @@ gfc_match_end_interface (void)
       /* Comparing the symbol node names is OK because only use-associated
          symbols can be renamed.  */
       if (type != current_interface.type
-	  || strcmp (current_interface.sym->name, name) != 0)
+	  || strcmp (current_interface.uop->name, name) != 0)
 	{
 	  gfc_error ("Expecting 'END INTERFACE OPERATOR (.%s.)' at %C",
 		     current_interface.sym->name);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 85a10d8381963e19b2def80fb915b4f4e5d22791..35e969423c451e4fb0ed52ae6bfe3ebb3e7337f1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-28  Steven G. Kargl  <kargls@comcast.net>
+
+	PR fortran/24545
+	* gfortran.dg/interface_2.f90: new test.
+
 2005-10-28  Josh Conner  <jconner@apple.com>
 
 	PR c++/22153
diff --git a/gcc/testsuite/gfortran.dg/interface_2.f90 b/gcc/testsuite/gfortran.dg/interface_2.f90
new file mode 100644
index 0000000000000000000000000000000000000000..6b0bf2b239bb46f0bcb878f8cd7a517e045b67ff
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/interface_2.f90
@@ -0,0 +1,29 @@
+! { dg-do compile }
+! PR fortran/24545
+MODULE Compare_Float_Numbers
+
+  IMPLICIT NONE
+
+  INTERFACE Compare_Float
+    MODULE PROCEDURE Compare_Float_Single
+  END INTERFACE Compare_Float
+
+  INTERFACE OPERATOR (.EqualTo.)
+    MODULE PROCEDURE Is_Equal_To_Single
+  END INTERFACE OPERATOR (.EqualTo.)
+
+CONTAINS
+
+  FUNCTION Is_Equal_To_Single(x, y) RESULT(Equal_To)
+    REAL(4), INTENT(IN) :: x, y
+    LOGICAL :: Equal_To
+    Equal_To = .true.
+  END FUNCTION Is_Equal_To_Single
+
+  FUNCTION Compare_Float_Single(x, y) RESULT(Compare)
+    REAL(4), INTENT(IN) :: x, y
+    LOGICAL :: Compare
+    Compare = .true.
+  END FUNCTION Compare_Float_Single
+
+END MODULE Compare_Float_Numbers