diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index e08e39238123b2c8b3614bf532957137b41a81b5..766b798b1dad2c03814b2447dcbec92b1ee158dc 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -920,9 +920,14 @@ void ClearCasePlugin::undoCheckOutCurrent()
         QDialog uncoDlg;
         uncoUi.setupUi(&uncoDlg);
         uncoUi.lblMessage->setText(tr("Do you want to undo the check out of \"%1\"?").arg(fileName));
+        uncoUi.chkKeep->setChecked(m_settings.keepFileUndoCheckout);
         if (uncoDlg.exec() != QDialog::Accepted)
             return;
         keep = uncoUi.chkKeep->isChecked();
+        if (keep != m_settings.keepFileUndoCheckout) {
+            m_settings.keepFileUndoCheckout = keep;
+            m_settings.toSettings(ICore::settings());
+        }
     }
     vcsUndoCheckOut(state.topLevel(), file, keep);
 }
diff --git a/src/plugins/clearcase/clearcasesettings.cpp b/src/plugins/clearcase/clearcasesettings.cpp
index 1c75fae46b77ea40a57fc4f08f5c96e55a504b4e..4eebc9d2df798c042144c379fb19fe21e0d60bd2 100644
--- a/src/plugins/clearcase/clearcasesettings.cpp
+++ b/src/plugins/clearcase/clearcasesettings.cpp
@@ -43,6 +43,7 @@ static const char historyCountKeyC[] = "HistoryCount";
 static const char timeOutKeyC[] = "TimeOut";
 static const char autoCheckOutKeyC[] = "AutoCheckOut";
 static const char noCommentKeyC[] = "NoComment";
+static const char keepFileUndoCheckoutKeyC[] = "KeepFileUnDoCheckout";
 static const char diffTypeKeyC[] = "DiffType";
 static const char diffArgsKeyC[] = "DiffArgs";
 static const char autoAssignActivityKeyC[] = "AutoAssignActivityName";
@@ -69,6 +70,7 @@ ClearCaseSettings::ClearCaseSettings() :
     autoAssignActivityName(true),
     autoCheckOut(true),
     noComment(false),
+    keepFileUndoCheckout(true),
     promptToCheckIn(false),
     disableIndexer(false),
     extDiffAvailable(false),
@@ -84,6 +86,7 @@ void ClearCaseSettings::fromSettings(QSettings *settings)
     timeOutS = settings->value(QLatin1String(timeOutKeyC), defaultTimeOutS).toInt();
     autoCheckOut = settings->value(QLatin1String(autoCheckOutKeyC), false).toBool();
     noComment = settings->value(QLatin1String(noCommentKeyC), false).toBool();
+    keepFileUndoCheckout = settings->value(QLatin1String(keepFileUndoCheckoutKeyC), true).toBool();
     QString sDiffType = settings->value(QLatin1String(diffTypeKeyC), QLatin1String("Graphical")).toString();
     switch (sDiffType[0].toUpper().toLatin1()) {
         case 'G': diffType = GraphicalDiff; break;
@@ -112,6 +115,7 @@ void ClearCaseSettings::toSettings(QSettings *settings) const
     settings->setValue(QLatin1String(commandKeyC), ccCommand);
     settings->setValue(QLatin1String(autoCheckOutKeyC), autoCheckOut);
     settings->setValue(QLatin1String(noCommentKeyC), noComment);
+    settings->setValue(QLatin1String(keepFileUndoCheckoutKeyC), keepFileUndoCheckout);
     settings->setValue(QLatin1String(timeOutKeyC), timeOutS);
     QString sDiffType;
     switch (diffType) {
@@ -136,16 +140,17 @@ void ClearCaseSettings::toSettings(QSettings *settings) const
 
 bool ClearCaseSettings::equals(const ClearCaseSettings &s) const
 {
-    return ccCommand       == s.ccCommand
-        && historyCount    == s.historyCount
-        && timeOutS        == s.timeOutS
-        && autoCheckOut    == s.autoCheckOut
-        && noComment       == s.noComment
-        && diffType        == s.diffType
-        && diffArgs     == s.diffArgs
+    return ccCommand              == s.ccCommand
+        && historyCount           == s.historyCount
+        && timeOutS               == s.timeOutS
+        && autoCheckOut           == s.autoCheckOut
+        && noComment              == s.noComment
+        && keepFileUndoCheckout   == s.keepFileUndoCheckout
+        && diffType               == s.diffType
+        && diffArgs               == s.diffArgs
         && autoAssignActivityName == s.autoAssignActivityName
-        && promptToCheckIn == s.promptToCheckIn
-        && disableIndexer  == s.disableIndexer
-        && indexOnlyVOBs   == s.indexOnlyVOBs
-        && totalFiles      == s.totalFiles;
+        && promptToCheckIn        == s.promptToCheckIn
+        && disableIndexer         == s.disableIndexer
+        && indexOnlyVOBs          == s.indexOnlyVOBs
+        && totalFiles             == s.totalFiles;
 }
diff --git a/src/plugins/clearcase/clearcasesettings.h b/src/plugins/clearcase/clearcasesettings.h
index f0fe8446aa50a55add7476e651c92c4d03ce8c1d..1bd880c1e5d6e54b3a3ed5ceb564392b3c696453 100644
--- a/src/plugins/clearcase/clearcasesettings.h
+++ b/src/plugins/clearcase/clearcasesettings.h
@@ -69,6 +69,7 @@ public:
     bool autoAssignActivityName;
     bool autoCheckOut;
     bool noComment;
+    bool keepFileUndoCheckout;
     bool promptToCheckIn;
     bool disableIndexer;
     bool extDiffAvailable;