Index: /trunk/FACT++/src/HeadersFAD.h
===================================================================
--- /trunk/FACT++/src/HeadersFAD.h	(revision 11209)
+++ /trunk/FACT++/src/HeadersFAD.h	(revision 11210)
@@ -219,4 +219,14 @@
             Reverse(&fRunNumber);
             Reverse(&fDNA);
+
+            for (int i=0; i<kNumTemp; i++)
+            {
+                fTempDrs[i] =
+                    (fTempDrs[i]&0x8000) ?
+                    ((fTempDrs[i]&0x007fff)^0xffffffff) :
+                    (fTempDrs[i]&0x007fff);
+                fTempDrs[i]>>=3;
+            }
+
         }
 
@@ -246,13 +256,23 @@
             Reverse(&h.fDNA);
 
+            for (int i=0; i<kNumTemp; i++)
+            {
+                h.fTempDrs[i] <<= 3;
+                h.fTempDrs[i] = ((h.fTempDrs[i]&0x800000) ?
+                               (((h.fTempDrs[i]^0xffffffff)&0x007fff)|0x8000) :
+                               (h.fTempDrs[i]&0x007fff));
+            }
+
             return htoncpy(h);
         }
 
+        float GetTemp(int i) const { return fTempDrs[i]/16.; }
+
+        /*
         float GetTemp(int i) const
         {
-            return (((fTempDrs[i]&0x8000)
-                     ?
+            return (((fTempDrs[i]&0x8000) ?
                      ((fTempDrs[i]&0x007fff)^0xffffffff)
-                     : (fTempDrs[i]&0x007fff))>>3)/16.; }
+                     : (fTempDrs[i]&0x007fff))>>3)/16.; }*/
 
         uint8_t PLLLCK() const         { return  fStatus>>12; }
