diff --git a/libbridge/libbridge_init.c b/libbridge/libbridge_init.c
index a7473bd..d093bb1 100644
--- a/libbridge/libbridge_init.c
+++ b/libbridge/libbridge_init.c
@@ -49,6 +49,12 @@ static int isbridge(const struct dirent *entry)
char path[SYSFS_PATH_MAX];
struct stat st;
+ /* Ignore "." and ".." entries. */
+ if (entry->d_name[0] == '.' &&
+ (entry->d_name[1] == 0 ||
+ (entry->d_name[1] == '.' && entry->d_name[2] == 0)))
+ return 0;
+
snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/bridge", entry->d_name);
return stat(path, &st) == 0 && S_ISDIR(st.st_mode);
}