diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index f2251acca80f98fa8d514f75f6fbfe9997c87ee8..5f9d37e028fbcc7aff662fc19e456c615df8d56f 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -256,16 +256,22 @@ FileStatus::Status ClearCasePlugin::getFileStatus(const QString &fileName) const
     QString buffer = runCleartoolSync(viewRoot, args);
 
     const int atatpos = buffer.indexOf(QLatin1String("@@"));
-    if (atatpos != -1) { // probably managed file
-        // find first whitespace. anything before that is not interesting
-        const int wspos = buffer.indexOf(QRegExp(QLatin1String("\\s")));
+    if (atatpos != -1) { // probably a managed file
         const QString absFile =
                 viewRootDir.absoluteFilePath(
                     QDir::fromNativeSeparators(buffer.left(atatpos)));
-
         QTC_CHECK(QFile(absFile).exists());
         QTC_CHECK(!absFile.isEmpty());
 
+        // "cleartool ls" of a derived object looks like this:
+        // /path/to/file/export/MyFile.h@@--11-13T19:52.266580
+        const QChar c = buffer.at(atatpos + 2);
+        const bool isDerivedObject = c != QLatin1Char('/') && c != QLatin1Char('\\');
+        if (isDerivedObject)
+            return FileStatus::Derived;
+
+        // find first whitespace. anything before that is not interesting
+        const int wspos = buffer.indexOf(QRegExp(QLatin1String("\\s")));
         if (buffer.lastIndexOf(QLatin1String("CHECKEDOUT"), wspos) != -1)
             return FileStatus::CheckedOut;
         else
@@ -1940,7 +1946,8 @@ bool ClearCasePlugin::ccCheckUcm(const QString &viewname, const QString &working
 bool ClearCasePlugin::managesFile(const QString &workingDirectory, const QString &fileName) const
 {
     QString absFile = QFileInfo(QDir(workingDirectory), fileName).absoluteFilePath();
-    return getFileStatus(absFile) != FileStatus::NotManaged;
+    const FileStatus::Status status = getFileStatus(absFile);
+    return status != FileStatus::NotManaged && status != FileStatus::Derived;
 }
 
 ViewData ClearCasePlugin::ccGetView(const QString &workingDir) const
diff --git a/src/plugins/clearcase/clearcaseplugin.h b/src/plugins/clearcase/clearcaseplugin.h
index 7ce1dbf79f5d1a403a10826c8c8d14541fc6f2d7..af7af67800b160e5ac8f8c95ab1a74e43832a188 100644
--- a/src/plugins/clearcase/clearcaseplugin.h
+++ b/src/plugins/clearcase/clearcaseplugin.h
@@ -89,7 +89,8 @@ public:
         CheckedOut = 0x02,
         Hijacked   = 0x04,
         NotManaged = 0x08,
-        Missing    = 0x10
+        Missing    = 0x10,
+        Derived    = 0x20
     } status;
 
     QFile::Permissions permissions;