diff --git a/src/port/fseeko.c b/src/port/fseeko.c
index 60a0ae4102923e79899b4971d92eafe303ecd235..dd4ef3247187dc6b834758b6e1e6a2a51dfe799d 100644
--- a/src/port/fseeko.c
+++ b/src/port/fseeko.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/port/fseeko.c,v 1.2 2002/10/23 21:16:17 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/port/fseeko.c,v 1.3 2002/10/23 21:39:27 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,16 +40,10 @@ fseeko(FILE *stream, off_t offset, int whence)
 		case SEEK_CUR:
 			flockfile(stream);
 			if (fgetpos(stream, &floc) != 0)
-			{
-				funlockfile(stream);
-				return -1;
-			}
+				goto failure;
 			floc += offset;
 			if (fsetpos(stream, &floc) != 0)
-			{
-				funlockfile(stream);
-				return -1;
-			}
+				goto failure;
 			flockfile(stream);
 			return 0;
 			break;
@@ -61,16 +55,10 @@ fseeko(FILE *stream, off_t offset, int whence)
 		case SEEK_END:
 			flockfile(stream);
 			if (fstat(fileno(stream), &filestat) != 0)
-			{
-				funlockfile(stream);
-				return -1;
-			}
+				goto failure;
 			floc = filestat.st_size;
 			if (fsetpos(stream, &floc) != 0)
-			{
-				funlockfile(stream);
-				return -1;
-			}
+				goto failure;
 			funlockfile(stream);
 			return 0;
 			break;
@@ -78,6 +66,10 @@ fseeko(FILE *stream, off_t offset, int whence)
 			errno =	EINVAL;
 			return -1;
 	}
+
+failure:
+	funlockfile(stream);
+	return -1;
 }