diff --git a/Scribus/scribus/scribus.cpp b/Scribus/scribus/scribus.cpp
index 47011bd..3fec90b 100644
--- a/Scribus/scribus/scribus.cpp
+++ b/Scribus/scribus/scribus.cpp
@@ -10255,3 +10255,65 @@ void ScribusMainWindow::updateTableMenuActions()
 	scrActions["tableAdjustTableToFrame"]->setEnabled(table);
 }
 
+bool ScribusMainWindow::stylesShortcutKeyEvent(const QKeyEvent* k)
+{
+	int keyCode =0;
+	if (k->modifiers() & Qt::ShiftModifier)
+		keyCode |= Qt::SHIFT;
+	if (k->modifiers() & Qt::ControlModifier)
+		keyCode |= Qt::CTRL;
+	if (k->modifiers() & Qt::AltModifier)
+		keyCode |= Qt::ALT;
+	keyCode|=k->key();
+
+	QKeySequence key = QKeySequence(keyCode);
+	QString shortcut = key.toString();
+	
+	//check if shortcut is used by setyles
+	for (int ff = 0; ff < doc->paragraphStyles().count(); ++ff)
+	{
+		if (doc->paragraphStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->paragraphStyles()[ff].name();
+			doc->itemSelection_SetNamedParagraphStyle(name);
+			return true;
+		}
+	}
+	for (int ff = 0; ff < doc->charStyles().count(); ++ff)
+	{
+		if (doc->charStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->charStyles()[ff].name();
+			doc->itemSelection_SetNamedCharStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	for (QHash<QString,multiLine>::Iterator itMU = doc->MLineStyles.begin(); itMU != doc->MLineStyles.end(); ++itMU)
+	{
+		if (itMU.value().shortcut == shortcut)
+		{
+			QString name = itMU.key();
+			doc->itemSelection_SetNamedLineStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	for (int ff = 0; ff < doc->tableStyles().count(); ++ff)
+	{
+		if (doc->tableStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->tableStyles()[ff].name();
+			doc->itemSelection_SetNamedTableStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	for (int ff = 0; ff < doc->cellStyles().count(); ++ff)
+	{
+		if (doc->cellStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->cellStyles()[ff].name();
+			doc->itemSelection_SetNamedCellStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	return false;
+}
diff --git a/Scribus/scribus/scribus.h b/Scribus/scribus/scribus.h
index 042af8f..743495b 100644
--- a/Scribus/scribus/scribus.h
+++ b/Scribus/scribus/scribus.h
@@ -608,6 +608,10 @@ private:
 	FormatsManager *formatsManager;
 
 	QPointer<HelpBrowser> helpBrowser;
+
+//for styles shortcuts
+public:
+	bool stylesShortcutKeyEvent(const QKeyEvent*);
 };
 
 #endif
diff --git a/Scribus/scribus/scribusdoc.cpp b/Scribus/scribus/scribusdoc.cpp
index 99f5c32..410749d 100644
--- a/Scribus/scribus/scribusdoc.cpp
+++ b/Scribus/scribus/scribusdoc.cpp
@@ -7384,7 +7384,13 @@ void ScribusDoc::itemSelection_SetNamedLineStyle(const QString &name, Selection*
 		changed();
 	}
 }
-
+//FIX ME - please implement these method
+void ScribusDoc::itemSelection_SetNamedTableStyle(const QString &name, Selection* customSelection)
+{
+}
+void ScribusDoc::itemSelection_SetNamedCellStyle(const QString &name, Selection* customSelection)
+{
+}
 
 void ScribusDoc::itemSelection_SetItemPen(QString farbe)
 {
diff --git a/Scribus/scribus/scribusdoc.h b/Scribus/scribus/scribusdoc.h
index d51441c..b529823 100644
--- a/Scribus/scribus/scribusdoc.h
+++ b/Scribus/scribus/scribusdoc.h
@@ -537,7 +537,6 @@ public:
 	bool isDefaultStyle( const ParagraphStyle& p ) const { return docParagraphStyles.isDefault(p); }
 	bool isDefaultStyle( const CharStyle& c ) const { return docCharStyles.isDefault(c); }
 // 	bool isDefaultStyle( LineStyle& l ) const { return MLineStyles......; }
-
 	/**
 	 * Returns the table style named @a name.
 	 */
@@ -1031,6 +1030,8 @@ public:
 	void itemSelection_SetNamedParagraphStyle(const QString & name, Selection* customSelection=0);
 	void itemSelection_SetNamedCharStyle(const QString & name, Selection* customSelection=0);
 	void itemSelection_SetNamedLineStyle(const QString & name, Selection* customSelection=0);
+	void itemSelection_SetNamedTableStyle(const QString & name, Selection* customSelection=0);
+	void itemSelection_SetNamedCellStyle(const QString & name, Selection* customSelection=0);
 
 	void itemSelection_SetLineWidth(double w);
 	void itemSelection_SetLineArt(Qt::PenStyle w);
diff --git a/Scribus/scribus/scribusview.cpp b/Scribus/scribus/scribusview.cpp
index f13d616..ca1b076 100644
--- a/Scribus/scribus/scribusview.cpp
+++ b/Scribus/scribus/scribusview.cpp
@@ -4256,6 +4256,8 @@ bool ScribusView::eventFilter(QObject *obj, QEvent *event)
 	else if (event->type() == QEvent::KeyPress)
 	{
 		QKeyEvent* m = static_cast<QKeyEvent*> (event);
+		if (m_ScMW->stylesShortcutKeyEvent(m))
+			return true;
 		if (m_canvasMode->handleKeyEvents())
 			m_canvasMode->keyPressEvent(m);
 		else
diff --git a/Scribus/scribus/ui/stylemanager.cpp b/Scribus/scribus/ui/stylemanager.cpp
index ffd34be..6a18076 100644
--- a/Scribus/scribus/ui/stylemanager.cpp
+++ b/Scribus/scribus/ui/stylemanager.cpp
@@ -1318,7 +1318,7 @@ void StyleManager::loadType(const QString &name)
 	}
 	m_widget = m_item->widget(); // show the widget for the style type
 	//<<#8230: Hide the shortcut page as it does not work
-	//insertShortcutPage(m_widget);
+	insertShortcutPage(m_widget);
 	//>>
 	m_widget->setParent(mainFrame);
 	m_layout->addWidget(m_widget, 0, 0);
