Index: tol/OIS/oiscreator.cpp
===================================================================
--- tol/OIS/oiscreator.cpp	(revision 565b311c934fc5ee81fec96132aab7c6ea75c23d)
+++ tol/OIS/oiscreator.cpp	(revision 5e88b2f6305a1ecb553613ac545ba515b6f917e2)
@@ -413,11 +413,15 @@
   int s = x.Size();
   EWrite(s, stream);
-  BCoefDeg* buf = (BCoefDeg*)AllocAuxilarBuffer(3,sizeof(BCoefDeg)*x.Size());
+  char* buf = (char*)AllocAuxilarBuffer(3,SIZEOF_BCoefDeg*x.Size());
   for(int i=0; i<x.Size(); i++)
   {
-    buf[i].degree_      = x(i).Degree();
-    buf[i].coefficient_ = x(i).Coef  ();
-  }
-  Ensure(Write(buf,sizeof(BCoefDeg),x.Size(),stream));
+    int *degree;
+    BDat *coefficient;
+    degree = (int*)&buf[i*SIZEOF_BCoefDeg];
+    coefficient = (BDat*)&buf[i*SIZEOF_BCoefDeg+sizeof(int)];
+    *degree = x(i).Degree();
+    *coefficient = x(i).Coef();
+  }
+  Ensure(Write(buf,SIZEOF_BCoefDeg,x.Size(),stream));
   return(true);
 };
Index: tol/OIS/oisloader.cpp
===================================================================
--- tol/OIS/oisloader.cpp	(revision 565b311c934fc5ee81fec96132aab7c6ea75c23d)
+++ tol/OIS/oisloader.cpp	(revision 5e88b2f6305a1ecb553613ac545ba515b6f917e2)
@@ -409,12 +409,16 @@
     }
   }
-  else if(control_.typeSizes_.sizeof_BCoefDeg_==sizeof(BCoefDeg))
-  {
-    BCoefDeg* buf = (BCoefDeg*)AllocAuxilarBuffer(1,sizeof(BCoefDeg)*s);
-    Ensure(Read(buf,sizeof(BCoefDeg),s,stream));
+  else if(control_.typeSizes_.sizeof_BCoefDeg_==SIZEOF_BCoefDeg)
+  {
+    char* buf = (char*)AllocAuxilarBuffer(1,SIZEOF_BCoefDeg*s);
+    Ensure(Read(buf,SIZEOF_BCoefDeg,s,stream));
     for(i=0; i<x.Size(); i++)
     {
-      x[i].PutDegree(buf[i].degree_);
-      x[i].PutCoef  (buf[i].coefficient_);
+      int *degree;
+      BDat *coefficient;
+      degree = (int*)&buf[i*SIZEOF_BCoefDeg];
+      coefficient = (BDat*)&buf[i*SIZEOF_BCoefDeg+sizeof(int)];
+      x[i].PutDegree(*degree);
+      x[i].PutCoef(*coefficient);
     }
   }
Index: tol/OIS/tol_ois.h
===================================================================
--- tol/OIS/tol_ois.h	(revision 565b311c934fc5ee81fec96132aab7c6ea75c23d)
+++ tol/OIS/tol_ois.h	(revision 5e88b2f6305a1ecb553613ac545ba515b6f917e2)
@@ -67,4 +67,6 @@
 #define Ensure(doit) if(!(doit)) { return(0); }
 
+// SIZEOF_BCoefDeg was sizeof(BCoefDeg) 
+#define SIZEOF_BCoefDeg (sizeof(int)+sizeof(BDat))
 
 //--------------------------------------------------------------------
@@ -195,5 +197,5 @@
         sizeof_double_     (sizeof(double)),
         sizeof_BDat_       (sizeof(BDat)),
-        sizeof_BCoefDeg_   (sizeof(BCoefDeg)),
+        sizeof_BCoefDeg_   (SIZEOF_BCoefDeg),
         sizeof_BGrammarId_ (sizeof(BGrammarId))
       {}
