diff -ur vte-0.20.5/src/pty.c vte/src/pty.c
--- vte-0.20.5/src/pty.c	2009-04-18 00:00:30.000000000 +0200
+++ vte/src/pty.c	2009-06-28 03:08:35.675537082 +0200
@@ -206,18 +206,20 @@
 #endif
 
 #ifdef HAVE_STROPTS_H
-	if ((ioctl(fd, I_FIND, "ptem") == 0) &&
-			(ioctl(fd, I_PUSH, "ptem") == -1)) {
-		_exit (127);
-	}
-	if ((ioctl(fd, I_FIND, "ldterm") == 0) &&
-			(ioctl(fd, I_PUSH, "ldterm") == -1)) {
-		_exit (127);
-	}
-	if ((ioctl(fd, I_FIND, "ttcompat") == 0) &&
-			(ioctl(fd, I_PUSH, "ttcompat") == -1)) {
-		perror ("ioctl (fd, I_PUSH, \"ttcompat\")");
-		_exit (127);
+	if (isastream(fd) == 1) {
+		if ((ioctl(fd, I_FIND, "ptem") == 0) &&
+				(ioctl(fd, I_PUSH, "ptem") == -1)) {
+			_exit (127);
+		}
+		if ((ioctl(fd, I_FIND, "ldterm") == 0) &&
+				(ioctl(fd, I_PUSH, "ldterm") == -1)) {
+			_exit (127);
+		}
+		if ((ioctl(fd, I_FIND, "ttcompat") == 0) &&
+				(ioctl(fd, I_PUSH, "ttcompat") == -1)) {
+			perror ("ioctl (fd, I_PUSH, \"ttcompat\")");
+			_exit (127);
+		}
 	}
 #endif
 
