diff --git a/apps/openmw/mwgui/itemselection.cpp b/apps/openmw/mwgui/itemselection.cpp
index 01ea3429c..1b197f6d8 100644
--- a/apps/openmw/mwgui/itemselection.cpp
+++ b/apps/openmw/mwgui/itemselection.cpp
@@ -26,6 +26,11 @@ namespace MWGui
         center();
     }
 
+    void ItemSelectionDialog::exit()
+    {
+        eventDialogCanceled();
+    }
+
     void ItemSelectionDialog::openContainer(const MWWorld::Ptr& container)
     {
         mModel = new InventoryItemModel(container);
@@ -53,7 +58,7 @@ namespace MWGui
 
     void ItemSelectionDialog::onCancelButtonClicked(MyGUI::Widget* sender)
     {
-        eventDialogCanceled();
+        exit();
     }
 
 }
diff --git a/apps/openmw/mwgui/itemselection.hpp b/apps/openmw/mwgui/itemselection.hpp
index c9ec23cfa..28c45c605 100644
--- a/apps/openmw/mwgui/itemselection.hpp
+++ b/apps/openmw/mwgui/itemselection.hpp
@@ -14,6 +14,8 @@ namespace MWGui
     public:
         ItemSelectionDialog(const std::string& label);
 
+        virtual void exit();
+
         typedef MyGUI::delegates::CMultiDelegate0 EventHandle_Void;
         typedef MyGUI::delegates::CMultiDelegate1<MWWorld::Ptr> EventHandle_Item;
 
diff --git a/apps/openmw/mwgui/quickkeysmenu.cpp b/apps/openmw/mwgui/quickkeysmenu.cpp
index 9321d2de2..af4e20ca4 100644
--- a/apps/openmw/mwgui/quickkeysmenu.cpp
+++ b/apps/openmw/mwgui/quickkeysmenu.cpp
@@ -59,7 +59,7 @@ namespace MWGui
 
     void QuickKeysMenu::exit()
     {
-        mAssignDialog->setVisible (false);
+        MWBase::Environment::get().getWindowManager()->removeGuiMode (MWGui::GM_QuickKeysMenu);
     }
 
     void QuickKeysMenu::clear()
@@ -151,7 +151,7 @@ namespace MWGui
 
     void QuickKeysMenu::onCancelButtonClicked(MyGUI::Widget* sender)
     {
-        exit();
+        mAssignDialog->setVisible (false);
     }
 
     void QuickKeysMenu::onAssignItem(MWWorld::Ptr item)
@@ -390,6 +390,11 @@ namespace MWGui
         center();
     }
 
+    void QuickKeysMenuAssign::exit()
+    {
+        setVisible(false);
+    }
+
     void QuickKeysMenu::write(ESM::ESMWriter &writer)
     {
         writer.startRecord(ESM::REC_KEYS);
@@ -513,7 +518,12 @@ namespace MWGui
 
     void MagicSelectionDialog::onCancelButtonClicked (MyGUI::Widget *sender)
     {
-        mParent->onAssignMagicCancel ();
+        exit();
+    }
+
+    void MagicSelectionDialog::exit()
+    {
+        mParent->onAssignMagicCancel();
     }
 
     void MagicSelectionDialog::open ()
diff --git a/apps/openmw/mwgui/quickkeysmenu.hpp b/apps/openmw/mwgui/quickkeysmenu.hpp
index 56a04cfbb..40c5dab56 100644
--- a/apps/openmw/mwgui/quickkeysmenu.hpp
+++ b/apps/openmw/mwgui/quickkeysmenu.hpp
@@ -70,6 +70,7 @@ namespace MWGui
     {
     public:
         QuickKeysMenuAssign(QuickKeysMenu* parent);
+        virtual void exit();
 
     private:
         MyGUI::TextBox* mLabel;
@@ -87,6 +88,7 @@ namespace MWGui
         MagicSelectionDialog(QuickKeysMenu* parent);
 
         virtual void open();
+        virtual void exit();
 
     private:
         MyGUI::Button* mCancelButton;
diff --git a/apps/openmw/mwinput/inputmanagerimp.cpp b/apps/openmw/mwinput/inputmanagerimp.cpp
index 2d78e7875..332c8f6a7 100644
--- a/apps/openmw/mwinput/inputmanagerimp.cpp
+++ b/apps/openmw/mwinput/inputmanagerimp.cpp
@@ -642,7 +642,7 @@ namespace MWInput
             return;
         }
 
-        if(MWBase::Environment::get().getWindowManager()->getMode() == MWGui::GM_Dialogue) { //Give access to the main menu when at a choice in Dialogue
+        if(MWBase::Environment::get().getWindowManager()->getMode() == MWGui::GM_Dialogue) { //Give access to the main menu when at a choice in dialogue
             if(MWBase::Environment::get().getDialogueManager()->isInChoice()) {
                 MWBase::Environment::get().getWindowManager()->pushGuiMode (MWGui::GM_MainMenu);
                 MWBase::Environment::get().getSoundManager()->pauseSounds (MWBase::SoundManager::Play_TypeSfx);