--- src/filehandling_functions.c.orig	2010-09-19 17:20:39.000000000 +0400
+++ src/filehandling_functions.c	2012-08-06 14:52:03.000000000 +0400
@@ -200,7 +202,7 @@
 	}
 
 	/* if we haven't found anything, clean up and exit */
-	if (!goodHit)
+	if ( id && !goodHit )
 	{
 		fclose(id);
 		id = 0;
@@ -742,7 +744,7 @@
 	int i, j;
 	char *tmpfilename;
 
-	if (strncmp(filename, "dir", 3) == 0)
+	if (strncmp(filename, "dir", 3) == 0 && !isalnum(filename[3]))
 	{
 		xfree(buf);
 		return opendirfile(number);