                 
                 _decelerationAngularVelocity = calculateVelocity();
                 
-                _decelerationLastTime = CACurrentMediaTime();
-                _decelerationDisplayLink = CADisplayLink(target: self, selector: Selector("decelerationLoop"));
-                _decelerationDisplayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes);
+                if (_decelerationAngularVelocity != 0.0)
+                {
+                    _decelerationLastTime = CACurrentMediaTime();
+                    _decelerationDisplayLink = CADisplayLink(target: self, selector: Selector("decelerationLoop"));
+                    _decelerationDisplayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes);
+                }
             }
         }
         if (_isRotating)

            var touch = touches.first as! UITouch!;
            
            var touchLocation = touch.locationInView(self);
            
            if (!_isRotating && distance(eventX: touchLocation.x, startX: _touchStartPoint.x, eventY: touchLocation.y, startY: _touchStartPoint.y) > CGFloat(8.0))
            {

        }
    }
    
    private func resetVelocity()
    {
        _velocitySamples.removeAll(keepCapacity: false);
    }
    
    private func sampleVelocity(#touchLocation: CGPoint)
