diff --git a/tools/macdeployqt/macdeployqt/main.cpp b/tools/macdeployqt/macdeployqt/main.cpp
index 6dd1dbe..eb8b124 100644
--- a/tools/macdeployqt/macdeployqt/main.cpp
+++ b/tools/macdeployqt/macdeployqt/main.cpp
@@ -48,6 +48,7 @@ int main(int argc, char **argv)
         qDebug() << "Options:";
         qDebug() << "   -no-plugins: Skip plugin deployment";
         qDebug() << "   -dmg       : Create a .dmg disk image";
+        qDebug() << "   -strip     : Remove all local symbols";
         qDebug() << "";
         qDebug() << "macdeployqt takes an application bundle as input and makes it";
         qDebug() << "self-contained by copying in the Qt frameworks and plugins that";
@@ -71,19 +72,22 @@ int main(int argc, char **argv)
         return 0;
     }
     
-    DeploymentInfo deploymentInfo  = deployQtFrameworks(appBundlePath);
-    
     bool plugins = true;
     bool dmg = false;
-        
+    bool strip = false;
+
     for (int i = 2; i < argc; ++i) {
         QByteArray argument = QByteArray(argv[i]);
         if (argument == QByteArray("-no-plugins"))
             plugins = false;
         if (argument == QByteArray("-dmg"))
             dmg = true;
+        if (argument == QByteArray("-strip"))
+            strip = true;
     }
 
+    DeploymentInfo deploymentInfo  = deployQtFrameworks(appBundlePath, strip);
+
     if (plugins) {
         if (deploymentInfo.qtPath.isEmpty())
             deploymentInfo.pluginPath = "/Developer/Applications/Qt/plugins"; // Assume binary package.
@@ -92,7 +96,7 @@ int main(int argc, char **argv)
 
         qDebug() << "";
         qDebug() << "Deploying plugins from" << deploymentInfo.pluginPath;
-        deployPlugins(appBundlePath, deploymentInfo);
+        deployPlugins(appBundlePath, deploymentInfo, strip);
         createQtConf(appBundlePath);
     }
 
diff --git a/tools/macdeployqt/shared/shared.cpp b/tools/macdeployqt/shared/shared.cpp
index 64dd7d3..c7d2208 100644
--- a/tools/macdeployqt/shared/shared.cpp
+++ b/tools/macdeployqt/shared/shared.cpp
@@ -291,6 +291,19 @@ void runInstallNameTool(QStringList options)
     }
 }
 
+void runStrip(const QString &binaryPath)
+{
+    QProcess strip;
+    strip.start("strip", QStringList() << "-x" << binaryPath);
+    strip.waitForFinished();
+    if (strip.exitCode() != 0) {
+        qDebug() << strip.readAllStandardError();
+        qDebug() << strip.readAllStandardOutput();
+    } else {
+        qDebug() << "stripped" << binaryPath;
+    }
+}
+
 void changeIdentification(const QString &id, const QString &binaryPath)
 {
 //    qDebug() << "change identification on" << binaryPath << id;
@@ -312,7 +325,7 @@ void changeInstallName(const QString &oldName, const QString &newName, const QSt
     Returns a DeploymentInfo structure containing the Qt path used and a
     a list of actually deployed frameworks.
 */
-DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks, const QString &bundlePath, const QString &binaryPath)
+DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks, const QString &bundlePath, const QString &binaryPath, bool strip)
 {
     QStringList copiedFrameworks;
     DeploymentInfo deploymenInfo;
@@ -346,6 +359,10 @@ DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks, const QString
         if (deployedBinaryPath == QString())
             continue;
         
+        // Strip the framework
+        if (strip)
+            runStrip(deployedBinaryPath);
+        
         // Install_name_tool it a new id.
         changeIdentification(framework.deployedInstallName, deployedBinaryPath);
         // Check for framework dependencies
@@ -365,15 +382,15 @@ DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks, const QString
     return deploymenInfo;
 }
 
-DeploymentInfo deployQtFrameworks(const QString &appBundlePath)
+DeploymentInfo deployQtFrameworks(const QString &appBundlePath, bool strip)
 {
    ApplicationBundleInfo applicationBundle;
    applicationBundle.path = appBundlePath;
    applicationBundle.binaryPath = findAppBinary(appBundlePath);
-   return deployQtFrameworks(getQtFrameworks(applicationBundle.binaryPath), applicationBundle.path, applicationBundle.binaryPath);
+   return deployQtFrameworks(getQtFrameworks(applicationBundle.binaryPath), applicationBundle.path, applicationBundle.binaryPath, strip);
 }
 
-void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pluginSourcePath, const QString pluginDestinationPath, DeploymentInfo deploymentInfo)
+void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pluginSourcePath, const QString pluginDestinationPath, DeploymentInfo deploymentInfo, bool strip)
 {
     QStringList plugins = QDir(pluginSourcePath).entryList(QStringList() << "*.dylib");
 
@@ -402,8 +419,8 @@ void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pl
             if (deployedFrameworks.indexOf("Qt3Support.framework") == -1 && pluginName.contains("accessiblecompatwidgets"))
                 continue;
 
-            // Deploy the svg icon plugin if QtSVG.framework is in use.
-            if (deployedFrameworks.indexOf("QtSVG.framework") == -1 && pluginName.contains("svg"))
+            // Deploy the svg icon plugin if QtSvg.framework is in use.
+            if (deployedFrameworks.indexOf("QtSvg.framework") == -1 && pluginName.contains("svg"))
                 continue;
 
             // Deploy the phonon plugins if phonon.framework is in use
@@ -426,6 +443,10 @@ void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pl
         const QString destinationPath = pluginDestinationPath + "/" + pluginName;
         if (copyFilePrintStatus(sourcePath, destinationPath)) {
         
+        // Strip the plugin
+        if (strip)
+            runStrip(destinationPath);
+
         // Special case for the phonon plugin: CoreVideo is not available as a separate framework
         // on panther, link against the QuartzCore framework instead. (QuartzCore contians CoreVideo.)
         if (pluginName.contains("libphonon_qt7")) {
@@ -437,14 +458,14 @@ void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pl
 //        qDebug() << "deploy plugin depedencies:";
             QList<FrameworkInfo> frameworks = getQtFrameworks(destinationPath);
 //            qDebug() << frameworks;
-            deployQtFrameworks(frameworks, appBundleInfo.path, destinationPath);
+            deployQtFrameworks(frameworks, appBundleInfo.path, destinationPath, strip);
 //        qDebug() << "deploy plugin depedencies done";
         }
     } // foreach plugins
 
     QStringList subdirs = QDir(pluginSourcePath).entryList(QStringList() << "*", QDir::Dirs | QDir::NoDotAndDotDot);
     foreach (const QString &subdir, subdirs)
-        deployPlugins(appBundleInfo, pluginSourcePath + "/" + subdir, pluginDestinationPath + "/" + subdir, deploymentInfo);
+        deployPlugins(appBundleInfo, pluginSourcePath + "/" + subdir, pluginDestinationPath + "/" + subdir, deploymentInfo, strip);
 }
 
 void createQtConf(const QString &appBundlePath)
@@ -475,7 +496,7 @@ void createQtConf(const QString &appBundlePath)
     }
 }
 
-void deployPlugins(const QString &appBundlePath, DeploymentInfo deploymentInfo)
+void deployPlugins(const QString &appBundlePath, DeploymentInfo deploymentInfo, bool strip)
 {
     ApplicationBundleInfo applicationBundle;
     applicationBundle.path = appBundlePath;
@@ -485,7 +506,7 @@ void deployPlugins(const QString &appBundlePath, DeploymentInfo deploymentInfo)
     
 //    qDebug() << "";
 //    qDebug() << "recursively copying plugins from" << deploymentInfo.pluginPath << "to" << pluginDestinationPath;
-    deployPlugins(applicationBundle, deploymentInfo.pluginPath, pluginDestinationPath, deploymentInfo);
+    deployPlugins(applicationBundle, deploymentInfo.pluginPath, pluginDestinationPath, deploymentInfo, strip);
 }
 
 
diff --git a/tools/macdeployqt/shared/shared.h b/tools/macdeployqt/shared/shared.h
index 372f5a3..e01daaf 100644
--- a/tools/macdeployqt/shared/shared.h
+++ b/tools/macdeployqt/shared/shared.h
@@ -85,10 +85,10 @@ QString findAppBinary(const QString &appBundlePath);
 QList<FrameworkInfo> getQtFrameworks(const QString &path);
 QList<FrameworkInfo> getQtFrameworks(const QStringList &otoolLines);
 QString copyFramework(const FrameworkInfo &framework, const QString path);
-DeploymentInfo deployQtFrameworks(const QString &appBundlePath);
-DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks, const QString &bundlePath, const QString &binaryPath);
+DeploymentInfo deployQtFrameworks(const QString &appBundlePath, bool strip);
+DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks, const QString &bundlePath, const QString &binaryPath, bool strip);
 void createQtConf(const QString &appBundlePath);
-void deployPlugins(const QString &appBundlePath, DeploymentInfo deploymentInfo);
+void deployPlugins(const QString &appBundlePath, DeploymentInfo deploymentInfo, bool strip);
 void changeIdentification(const QString &id, const QString &binaryPath);
 void changeInstallName(const QString &oldName, const QString &newName, const QString &binaryPath);
 QString findAppBinary(const QString &appBundlePath);
