diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index 26953cab7152dcf9275b6e736f21e30018b574ab..c29f23de2edebd1113c3a446d448b12203decf9a 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -1542,31 +1542,31 @@ QList<QStringPair> ClearCasePlugin::ccGetActivities() const
     // Maintain latest deliver and rebase activities only
     QStringPair rebaseAct;
     QStringPair deliverAct;
-    QStringList args(QLatin1String("lsactivity"));
     // Retrieve all activities
+    QStringList args(QLatin1String("lsactivity"));
     args << QLatin1String("-fmt") << QLatin1String("%n\\t%[headline]p\\n");
     const QString response = runCleartoolSync(currentState().topLevel(), args);
     QStringList acts = response.split(QLatin1Char('\n'), QString::SkipEmptyParts);
     foreach (QString activity, acts) {
         QStringList act = activity.split(QLatin1Char('\t'));
-        // exclude deliver/rebase activities (and include only the latest ones)
-        QRegExp deliverRebase(QLatin1String("deliver\\.|rebase\\."));
         if (act.size() >= 2)
         {
             QString actName = act.at(0);
-            if (actName.indexOf(deliverRebase) == -1)
-                result.append(QStringPair(actName, act.at(1).trimmed()));
-            else if ((actName.at(0) == QLatin1Char('r')) && (actName > rebaseAct.first))
+            // include only latest deliver/rebase activities. Activities are sorted
+            // by creation time
+            if (actName.startsWith(QLatin1String("rebase.")))
                 rebaseAct = QStringPair(actName, act.at(1));
-            else if ((actName.at(0) == QLatin1Char('d')) && (actName > deliverAct.first))
+            else if (actName.startsWith(QLatin1String("deliver.")))
                 deliverAct = QStringPair(actName, act.at(1));
+            else
+                result.append(QStringPair(actName, act.at(1).trimmed()));
         }
     }
+    qSort(result);
     if (!rebaseAct.first.isEmpty())
         result.append(rebaseAct);
     if (!deliverAct.first.isEmpty())
         result.append(deliverAct);
-    qSort(result);
     return result;
 }