diff --git a/io_anim_c3d/__init__.py b/io_anim_c3d/__init__.py
index f8510fd2e13ecee81f96abd2d88e22f79c60ad17..1a460ea41bc81d59d87a368a9aabc3b4196950fc 100644
--- a/io_anim_c3d/__init__.py
+++ b/io_anim_c3d/__init__.py
@@ -25,7 +25,7 @@
 bl_info = {
     'name': "C3D Graphics Lab Motion Capture file (.c3d)",
     'author': "Daniel Monteiro Basso <daniel@basso.inf.br>",
-    'version': (2011, 11, 2, 1),
+    'version': (2011, 11, 3, 1),
     'blender': (2, 6, 0),
     'api': 41226,
     'location': "File > Import",
diff --git a/io_anim_c3d/c3d.py b/io_anim_c3d/c3d.py
index a28c5dce9d50b826e380e91bff881536192001d2..7df6bcf8045c81b142e26c2c2e1ef88f30986b39 100644
--- a/io_anim_c3d/c3d.py
+++ b/io_anim_c3d/c3d.py
@@ -169,7 +169,10 @@ class MarkerSet:
          self.frameRate) = struct.unpack('fhhf', td)
         self.scale *= scale
         if self.scale < 0:
-            self.readMarker = self.readFloatMarker
+            if self.procType == 2:
+                self.readMarker = self.readFloatMarkerInvOrd
+            else:
+                self.readMarker = self.readFloatMarker
             self.scale *= -1
         else:
             self.readMarker = self.readShortMarker
@@ -203,6 +206,14 @@ class MarkerSet:
         m.position = (x * self.scale, y * self.scale, z * self.scale)
         return m
 
+    def readFloatMarkerInvOrd(self, infile):
+        m = Marker()
+        inv = lambda f: f[2:] + f[:2]
+        i = lambda: inv(infile.read(4))
+        x, y, z, m.confidence = struct.unpack('ffff', i() + i() + i() + i())
+        m.position = (x * self.scale, y * self.scale, z * self.scale)
+        return m
+
     def readShortMarker(self, infile):
         m = Marker()
         x, y, z, m.confidence = struct.unpack('hhhh', infile.read(8))