diff -dur binutils-2.17.old/bfd/opncls.c binutils-2.17/bfd/opncls.c
--- binutils-2.17.old/bfd/opncls.c	2006-03-16 13:20:16.000000000 +0100
+++ binutils-2.17/bfd/opncls.c	2007-05-01 18:26:11.000000000 +0200
@@ -158,6 +158,13 @@
 {
   bfd *nbfd;
   const bfd_target *target_vec;
+  struct stat s;
+
+  if (stat (filename, &s) == 0)
+    if (S_ISDIR(s.st_mode)) {
+      bfd_set_error (bfd_error_file_not_recognized);
+      return NULL;
+    }
 
   nbfd = _bfd_new_bfd ();
   if (nbfd == NULL)
