diff --git a/src/filewidgets/knewfilemenu.cpp b/src/filewidgets/knewfilemenu.cpp
--- a/src/filewidgets/knewfilemenu.cpp
+++ b/src/filewidgets/knewfilemenu.cpp
@@ -856,6 +856,33 @@
if (QDir::isAbsolutePath(name)) {
url = QUrl::fromLocalFile(name);
} else {
+ if (name == QLatin1String(".") || name == QLatin1String("..")) {
+ KGuiItem cancelGuiItem(KStandardGuiItem::cancel());
+ cancelGuiItem.setText(i18nc("@action:button", "Enter a different name"));
+
+ QDialog *confirmDialog = new QDialog(m_parentWidget);
+ confirmDialog->setWindowTitle(i18n("Invalid Directory Name"));
+ confirmDialog->setModal(m_modal);
+ confirmDialog->setAttribute(Qt::WA_DeleteOnClose);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(confirmDialog);
+ buttonBox->setStandardButtons(QDialogButtonBox::Cancel);
+ KGuiItem::assign(buttonBox->button(QDialogButtonBox::Cancel), cancelGuiItem);
+
+ KMessageBox::createKMessageBox(confirmDialog, buttonBox, QMessageBox::Critical,
+ xi18n("Folder %1 could not be created:%1 is reserved for use by the operating system.", name),
+ QStringList(),
+ QString(),
+ nullptr,
+ KMessageBox::NoExec,
+ QString());
+
+ QObject::connect(buttonBox, SIGNAL(rejected()), q, SLOT(createDirectory()));
+ m_fileDialog = confirmDialog;
+ confirmDialog->show();
+ _k_slotAbortDialog();
+ return;
+ }
if (!m_viewShowsHiddenFiles && name.startsWith('.')) {
if (!writeHiddenDir) {
confirmCreatingHiddenDir(name);