diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c
index 56c5ca3e70b12cc14a0a4454c5f83c8130316a2b..bddfcc4b1f5bb31f09c8a639d8c9daea714bde09 100644
--- a/src/pl/plpgsql/src/pl_comp.c
+++ b/src/pl/plpgsql/src/pl_comp.c
@@ -3,7 +3,7 @@
  *			  procedural language
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.53 2002/09/21 18:39:26 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.54 2003/01/31 00:31:53 tgl Exp $
  *
  *	  This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -1109,6 +1109,7 @@ plpgsql_parse_tripwordtype(char *word)
 	Form_pg_type typeStruct;
 	PLpgSQL_type *typ;
 	char	   *cp[2];
+	char	   *colname[1];
 	int			qualified_att_len;
 	int			numdots = 0;
 	int			i;
@@ -1135,7 +1136,7 @@ plpgsql_parse_tripwordtype(char *word)
 		}
 	}
 
-	relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp[0], "plpgsql_parse_dblwordtype"));
+	relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp[0], "plpgsql_parse_tripwordtype"));
 	classOid = RangeVarGetRelid(relvar, true);
 	if (!OidIsValid(classOid))
 	{
@@ -1171,7 +1172,10 @@ plpgsql_parse_tripwordtype(char *word)
 	/*
 	 * Fetch the named table field and it's type
 	 */
-	attrtup = SearchSysCacheAttName(classOid, cp[1]);
+	plpgsql_convert_ident(cp[1], colname, 1);
+	attrtup = SearchSysCacheAttName(classOid, colname[0]);
+	pfree(colname[0]);
+
 	if (!HeapTupleIsValid(attrtup))
 	{
 		ReleaseSysCache(classtup);
@@ -1273,7 +1277,7 @@ plpgsql_parse_dblwordrowtype(char *word)
 	memcpy(cp, word, i * sizeof(char));
 
 	/* Lookup the relation */
-	relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp, "plpgsql_parse_dblwordtype"));
+	relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp, "plpgsql_parse_dblwordrowtype"));
 	classOid = RangeVarGetRelid(relvar, true);
 	if (!OidIsValid(classOid))
 		elog(ERROR, "%s: no such class", cp);