diff --git a/Glob.cxx b/Glob.cxx
index 8e30f92f2707f7e37c489bf22b9c6cb247273396..364305f566ee04472da59cf6596199c88f6fe0e1 100644
--- a/Glob.cxx
+++ b/Glob.cxx
@@ -182,7 +182,13 @@ bool Glob::RecurseDirectory(std::string::size_type start,
                             const std::string& dir, GlobMessages* messages)
 {
   kwsys::Directory d;
-  if (!d.Load(dir)) {
+  std::string errorMessage;
+  if (!d.Load(dir, &errorMessage)) {
+    if (!errorMessage.empty()) {
+      messages->push_back(Message(Glob::warning,
+                                  "Error listing directory '" + dir +
+                                    "'! Reason: '" + errorMessage + "'"));
+    }
     return true;
   }
   unsigned long cc;
diff --git a/Glob.hxx.in b/Glob.hxx.in
index 170766f4b1e0b1b1f55f61de1be481f9de4f0d6f..b5a34d59a1e6bf556da0acbc5fb53e9a4b7dbff8 100644
--- a/Glob.hxx.in
+++ b/Glob.hxx.in
@@ -28,6 +28,7 @@ public:
   enum MessageType
   {
     error,
+    warning,
     cyclicRecursion
   };