diff --git a/scribus/plugins/scriptplugin/scriptercore.cpp b/scribus/plugins/scriptplugin/scriptercore.cpp
index ce81243..6be3e26 100644
--- a/scribus/plugins/scriptplugin/scriptercore.cpp
+++ b/scribus/plugins/scriptplugin/scriptercore.cpp
@@ -33,6 +33,8 @@ for which a new license (GPL+exception) is in place.
 #include "prefstable.h"
 #include "prefsmanager.h"
 
+#define ARG_SCRIPT_RUN "--plugins-script-run"
+
 ScripterCore::ScripterCore(QWidget* parent)
 {
 	pcon = new PythonConsole(parent);
@@ -60,6 +62,7 @@ ScripterCore::ScripterCore(QWidget* parent)
 
 	QObject::connect(pcon, SIGNAL(runCommand()), this, SLOT(slotExecute()));
 	QObject::connect(pcon, SIGNAL(paletteShown(bool)), this, SLOT(slotInteractiveScript(bool)));
+	QObject::connect(ScCore, SIGNAL(appStarted()) , this, SLOT(slotStartedParseArguments()));
 }
 
 ScripterCore::~ScripterCore()
@@ -105,6 +108,25 @@ void ScripterCore::buildScribusScriptsMenu()
 
 }
 
+void ScripterCore::slotStartedParseArguments()
+{
+	QString arg("");
+	QString fileName;
+
+	for(int i = 1; i < QApplication::argc(); i++) {
+		arg = QApplication::argv()[i];
+
+		if (arg == ARG_SCRIPT_RUN) {
+			fileName = QFile::decodeName(QApplication::argv()[++i]);
+			if (QFileInfo(fileName).exists()) {
+				slotRunScriptFile(fileName);
+			}
+
+
+		}
+	}		
+}
+
 void ScripterCore::rebuildRecentScriptsMenu()
 {
 	for( QMap<QString, QPointer<ScrAction> >::Iterator it = scrRecentScriptActions.begin(); it!=scrRecentScriptActions.end(); ++it )
diff --git a/scribus/plugins/scriptplugin/scriptercore.h b/scribus/plugins/scriptplugin/scriptercore.h
index 5d1c42e..73b34d8 100644
--- a/scribus/plugins/scriptplugin/scriptercore.h
+++ b/scribus/plugins/scriptplugin/scriptercore.h
@@ -39,6 +39,7 @@ public slots:
 	void slotRunScript(const QString Script);
 	void slotInteractiveScript(bool);
 	void slotExecute();
+	void slotStartedParseArguments();
 	/*! \brief Show docstring of the script to the user.
 	* I don't know how to get docstring via e.g. pydoc because of
 	* it needs to run script => error cannot find scribus module
diff --git a/scribus/scribusapp.cpp b/scribus/scribusapp.cpp
index aec5373..4e9840e 100644
--- a/scribus/scribusapp.cpp
+++ b/scribus/scribusapp.cpp
@@ -209,6 +209,8 @@ void ScribusQApp::parseCommandLine()
 		} else if (strncmp(arg.toLocal8Bit().data(),"-psn_",4) == 0)
 		{
 			// Andreas Vox: Qt/Mac has -psn_blah flags that must be accepted.
+		} else if (arg.left(10) == "--plugins-") {
+			++i;
 		} else {
 			fileName = QFile::decodeName(argv()[i]);
 			if (!QFileInfo(fileName).exists()) {
