diff --git a/src/declarative/items/qsgcanvas.cpp b/src/declarative/items/qsgcanvas.cpp
index 5fc5c76d1da151e09cffd1318c634b98e2d5970b..5d5c49d981f6a0e4bebfdb3377952d39ce4e96be 100644
--- a/src/declarative/items/qsgcanvas.cpp
+++ b/src/declarative/items/qsgcanvas.cpp
@@ -48,6 +48,8 @@
 #include <private/qsgrenderer_p.h>
 #include <private/qsgflashnode_p.h>
 
+#include <private/qabstractanimation_p.h>
+
 #include <QtGui/qpainter.h>
 #include <QtGui/qgraphicssceneevent.h>
 #include <QtGui/qmatrix4x4.h>
@@ -60,6 +62,7 @@
 QT_BEGIN_NAMESPACE
 
 DEFINE_BOOL_CONFIG_OPTION(qmlThreadedRenderer, QML_THREADED_RENDERER)
+DEFINE_BOOL_CONFIG_OPTION(qmlFixedAnimationStep, QML_FIXED_ANIMATION_STEP)
 
 /*
 Focus behavior
@@ -332,8 +335,8 @@ void QSGCanvasPrivate::renderSceneGraph()
 
 
 #ifdef FRAME_TIMING
-    int pixel;
-    glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixel);
+//    int pixel;
+//    glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixel);
     readbackTime = frameTimer.elapsed();
 #endif
 
@@ -477,6 +480,8 @@ QSGCanvasPrivate::~QSGCanvasPrivate()
 
 void QSGCanvasPrivate::init(QSGCanvas *c)
 {
+    QUnifiedTimer::instance(true)->setConsistentTiming(qmlFixedAnimationStep());
+
     q_ptr = c;
 
     Q_Q(QSGCanvas);