diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index b7b882cd97eefb08188ebe4bbe808db1dde02990..aaa1acaaa385b43a8a3aa9e22e86f6484884de36 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -3613,12 +3613,15 @@ bool QDeclarativeCompiler::completeComponentBuild()
             binding.property->type != qMetaTypeId<QDeclarativeBinding*>()) {
             binding.dataType = BindingReference::V8;
             sharedBindings.append(b);
+
+            if (componentStats)
+                componentStats->componentStat.sharedBindings.append(b->value->location);
         } else {
             binding.dataType = BindingReference::QtScript;
-        }
 
-        if (componentStats)
-            componentStats->componentStat.scriptBindings.append(b->value->location);
+            if (componentStats)
+                componentStats->componentStat.scriptBindings.append(b->value->location);
+        }
     }
 
     if (!sharedBindings.isEmpty()) {
@@ -3699,6 +3702,25 @@ void QDeclarativeCompiler::dumpStats()
             qWarning().nospace() << output.constData();
         }
 
+        qWarning().nospace() << "        Shared Bindings:    " << stat.sharedBindings.count();
+        {
+        QByteArray output;
+        for (int ii = 0; ii < stat.sharedBindings.count(); ++ii) {
+            if (0 == (ii % 10)) {
+                if (ii) output.append("\n");
+                output.append("            ");
+            }
+
+            output.append("(");
+            output.append(QByteArray::number(stat.sharedBindings.at(ii).start.line));
+            output.append(":");
+            output.append(QByteArray::number(stat.sharedBindings.at(ii).start.column));
+            output.append(") ");
+        }
+        if (!output.isEmpty())
+            qWarning().nospace() << output.constData();
+        }
+
         qWarning().nospace() << "        QScript Bindings:   " << stat.scriptBindings.count();
         {
         QByteArray output;
diff --git a/src/declarative/qml/qdeclarativecompiler_p.h b/src/declarative/qml/qdeclarativecompiler_p.h
index 637cd805690bf0027382e2a52b8ed5531dc5e1d6..3ef4668b79fbe8fa1720a4b3503620e1ea4b5efc 100644
--- a/src/declarative/qml/qdeclarativecompiler_p.h
+++ b/src/declarative/qml/qdeclarativecompiler_p.h
@@ -450,6 +450,7 @@ private:
 
         int ids;
         QList<QDeclarativeScript::LocationSpan> scriptBindings;
+        QList<QDeclarativeScript::LocationSpan> sharedBindings;
         QList<QDeclarativeScript::LocationSpan> optimizedBindings;
         int objects;
     };