diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java
index 8949eabc75b114192d2a429754f862534914c110..eecce9c939cd371a47dc694d6904df5494a61637 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java
@@ -862,7 +862,13 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
       case Types.VARBINARY:
 	return getBytes(columnIndex);   
       default:
-        return connection.getObject(field.getPGType(), getString(columnIndex));
+        String type = field.getPGType();
+        // if the backend doesn't know the type then coerce to String
+        if (type.equals("unknown")){
+           return getString(columnIndex);
+        }else{
+           return connection.getObject(field.getPGType(), getString(columnIndex));
+        }
       }
   }
   
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java
index 9df669910daf71c2f507f3541d6707b65d41fc0e..feec8d08c26b2bfa2f1d27bf07f5d04ea23d1b37 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java
@@ -727,7 +727,13 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
       case Types.VARBINARY:
 	return getBytes(columnIndex);   
       default:
-        return connection.getObject(field.getPGType(), getString(columnIndex));
+        String type = field.getPGType();
+        // if the backend doesn't know the type then coerce to String
+        if (type.equals("unknown")){
+           return getString(columnIndex);
+        }else{
+           return connection.getObject(field.getPGType(), getString(columnIndex));
+        }
       }
   }