Index: sansmodels/src/libigor/libCylinder.c
===================================================================
--- sansmodels/src/libigor/libCylinder.c	(revision 7d11b819fc9ff04b87232ef46a1a149089e38352)
+++ sansmodels/src/libigor/libCylinder.c	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -83,7 +83,7 @@
 
 	Pi = 4.0*atan(1.0);
-	va = 0;
-	vb = 1;		//orintational average, outer integral
-	vaj=0;
+	va = 0.0;
+	vb = 1.0;		//orintational average, outer integral
+	vaj=0.0;
 	vbj=Pi;		//endpoints of inner integral
 
@@ -163,7 +163,7 @@
 
 	Pi = 4.0*atan(1.0);
-	va = 0;
-	vb = 1;		//orintational average, outer integral
-	vaj=0;
+	va = 0.0;
+	vb = 1.0;		//orintational average, outer integral
+	vaj=0.0;
 	vbj=Pi;		//endpoints of inner integral
 
@@ -243,8 +243,8 @@
 
 	Pi = 4.0*atan(1.0);
-	va = 0;
-	vb = 1;		//orintational average, outer integral
-	vaj = 0;
-	vbj = 1;		//endpoints of inner integral
+	va = 0.0;
+	vb = 1.0;		//orintational average, outer integral
+	vaj = 0.0;
+	vbj = 1.0;		//endpoints of inner integral
 
 	summ = 0.0;			//initialize intergral
@@ -314,8 +314,8 @@
 
 	//	Pi = 4.0*atan(1.0);
-	va = 0;
-	vb = 1;		//orintational average, outer integral
-	vaj = 0;
-	vbj = 1;		//endpoints of inner integral
+	va = 0.0;
+	vb = 1.0;		//orintational average, outer integral
+	vaj = 0.0;
+	vbj = 1.0;		//endpoints of inner integral
 
 	summ = 0.0;			//initialize intergral
@@ -349,7 +349,7 @@
 		answer = (vbj-vaj)/2.0*summj;
 
-		arg = mu*cc*sigma/2;
-		if ( arg == 0 ) {
-			answer *= 1;
+		arg = mu*cc*sigma/2.0;
+		if ( arg == 0.0 ) {
+			answer *= 1.0;
 		} else {
 			answer *= sin(arg)*sin(arg)/arg/arg;
@@ -397,6 +397,6 @@
 
 	pi = 4.0*atan(1.0);
-	va = 0;
-	vb = 1;		//limits of numerical integral
+	va = 0.0;
+	vb = 1.0;		//limits of numerical integral
 
 	summ = 0.0;			//initialize intergral
@@ -450,6 +450,6 @@
 
 	pi = 4.0*atan(1.0);
-	va = 0;
-	vb = 1;		//limits of numerical integral
+	va = 0.0;
+	vb = 1.0;		//limits of numerical integral
 
 	summ = 0.0;			//initialize intergral
@@ -470,5 +470,5 @@
 	answer *= delrho*delrho;
 	//normalize by volume
-	answer *= 4*pi/3*a*a*nua;
+	answer *= 4.0*pi/3.0*a*a*nua;
 	//convert to [cm-1]
 	answer *= 1.0e8;
@@ -804,5 +804,5 @@
 	answer = (uplim-lolim)/2.0*summ;
 	// normalize by particle volume
-	prolatevol = 4*Pi/3*trmaj*trmin*trmin;
+	prolatevol = 4.0*Pi/3.0*trmaj*trmin*trmin;
 	answer /= prolatevol;
 
@@ -1009,5 +1009,5 @@
 
 	Euler = 0.5772156649;		// Euler's constant
-	dQDefault = 0; //0.0025;		//[=] 1/A, q-resolution, default value
+	dQDefault = 0.0; //0.0025;		//[=] 1/A, q-resolution, default value
 	dQ = dQDefault;
 
@@ -1602,24 +1602,24 @@
     t1 = (1.0/(b* p1*pow(q0,((-1.0) - p1 - p2)) - b*p2*pow(q0,((-1.0) - p1 - p2)) ));
 
-    t2 = (b*C*(((-1.0*((14.0*b3)/(15.0*q03*Rg2))) + (14*b3*pow(E,(-((q02*Rg2)/b2))))/(15*q03*Rg2) + (2*pow(E,(-((q02*Rg2)/b2)))*q0*((11.0/15.0 + (7*b2)/(15*q02*Rg2)))*Rg2)/b)))/L;
-
-    t3 = (sqrt(Rg2)*((C3*pow((((sqrt(Rg2)*q0)/b)),((-3)/miu)) + C2*pow((((sqrt(Rg2)*q0)/b)),((-2)/miu)) + C1*pow((((sqrt(Rg2)*q0)/b)),((-1.0)/miu))))*pow(sech_WR(((-C4) + (sqrt(Rg2)*q0)/b)/C5),2))/(2*C5);
-
-    t4 = (b4*sqrt(Rg2)*(((-1) + pow(E,(-((q02*Rg2)/b2))) + (q02*Rg2)/b2))*pow(sech_WR(((-C4) + (sqrt(Rg2)*q0)/b)/C5),2))/(C5*q04*Rg22);
-
-    t5 = (2*b4*(((2*q0*Rg2)/b - (2*pow(E,(-((q02*Rg2)/b2)))*q0*Rg2)/b))*((1 + 1.0/2.0*(((-1) - tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))/(q04*Rg22);
-
-    t6 = (8*b4*b*(((-1) + pow(E,(-((q02*Rg2)/b2))) + (q02*Rg2)/b2))*((1 + 1.0/2.0*(((-1) - tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))/(q05*Rg22);
-
-    t7 = (((-((3*C3*sqrt(Rg2)*pow((((sqrt(Rg2)*q0)/b)),((-1) - 3/miu)))/miu)) - (2*C2*sqrt(Rg2)*pow((((sqrt(Rg2)*q0)/b)),((-1) - 2/miu)))/miu - (C1*sqrt(Rg2)*pow((((sqrt(Rg2)*q0)/b)),((-1) - 1/miu)))/miu));
-
-    t8 = ((1 + tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5)));
-
-    t9 = (b*C*((4.0/15.0 - pow(E,(-((q02*Rg2)/b2)))*((11.0/15.0 + (7*b2)/(15*q02*Rg2))) + (7*b2)/(15*q02*Rg2))))/L;
-
-    t10 = (2*b4*(((-1) + pow(E,(-((q02*Rg2)/b2))) + (q02*Rg2)/b2))*((1 + 1.0/2.0*(((-1) - tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))/(q04*Rg22);
-
-
-    yy = ((-1*(t1* ((-pow(q0,-p1)*(((b2*pi)/(L*q02) + t2 + t3 - t4 + t5 - t6 + 1.0/2.0*t7*t8)) - b*p1*pow(q0,((-1) - p1))*(((-((b*pi)/(L*q0))) + t9 + t10 + 1.0/2.0*((C3*pow((((sqrt(Rg2)*q0)/b)),((-3)/miu)) + C2*pow((((sqrt(Rg2)*q0)/b)),((-2)/miu)) + C1*pow((((sqrt(Rg2)*q0)/b)),((-1)/miu))))*((1 + tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))))));
+    t2 = (b*C*(((-1.0*((14.0*b3)/(15.0*q03*Rg2))) + (14.0*b3*pow(E,(-((q02*Rg2)/b2))))/(15.0*q03*Rg2) + (2.0*pow(E,(-((q02*Rg2)/b2)))*q0*((11.0/15.0 + (7*b2)/(15.0*q02*Rg2)))*Rg2)/b)))/L;
+
+    t3 = (sqrt(Rg2)*((C3*pow((((sqrt(Rg2)*q0)/b)),((-3.0)/miu)) + C2*pow((((sqrt(Rg2)*q0)/b)),((-2.0)/miu)) + C1*pow((((sqrt(Rg2)*q0)/b)),((-1.0)/miu))))*pow(sech_WR(((-C4) + (sqrt(Rg2)*q0)/b)/C5),2.0))/(2.0*C5);
+
+    t4 = (b4*sqrt(Rg2)*(((-1.0) + pow(E,(-((q02*Rg2)/b2))) + (q02*Rg2)/b2))*pow(sech_WR(((-C4) + (sqrt(Rg2)*q0)/b)/C5),2))/(C5*q04*Rg22);
+
+    t5 = (2.0*b4*(((2*q0*Rg2)/b - (2.0*pow(E,(-((q02*Rg2)/b2)))*q0*Rg2)/b))*((1.0 + 1.0/2.0*(((-1.0) - tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))/(q04*Rg22);
+
+    t6 = (8.0*b4*b*(((-1.0) + pow(E,(-((q02*Rg2)/b2))) + (q02*Rg2)/b2))*((1.0 + 1.0/2.0*(((-1) - tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))/(q05*Rg22);
+
+    t7 = (((-((3.0*C3*sqrt(Rg2)*pow((((sqrt(Rg2)*q0)/b)),((-1.0) - 3.0/miu)))/miu)) - (2.0*C2*sqrt(Rg2)*pow((((sqrt(Rg2)*q0)/b)),((-1.0) - 2.0/miu)))/miu - (C1*sqrt(Rg2)*pow((((sqrt(Rg2)*q0)/b)),((-1.0) - 1.0/miu)))/miu));
+
+    t8 = ((1.0 + tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5)));
+
+    t9 = (b*C*((4.0/15.0 - pow(E,(-((q02*Rg2)/b2)))*((11.0/15.0 + (7.0*b2)/(15*q02*Rg2))) + (7.0*b2)/(15.0*q02*Rg2))))/L;
+
+    t10 = (2.0*b4*(((-1) + pow(E,(-((q02*Rg2)/b2))) + (q02*Rg2)/b2))*((1.0 + 1.0/2.0*(((-1) - tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))/(q04*Rg22);
+
+
+    yy = ((-1.0*(t1* ((-pow(q0,-p1)*(((b2*pi)/(L*q02) + t2 + t3 - t4 + t5 - t6 + 1.0/2.0*t7*t8)) - b*p1*pow(q0,((-1.0) - p1))*(((-((b*pi)/(L*q0))) + t9 + t10 + 1.0/2.0*((C3*pow((((sqrt(Rg2)*q0)/b)),((-3.0)/miu)) + C2*pow((((sqrt(Rg2)*q0)/b)),((-2.0)/miu)) + C1*pow((((sqrt(Rg2)*q0)/b)),((-1.0)/miu))))*((1.0 + tanh(((-C4) + (sqrt(Rg2)*q0)/b)/C5))))))))));
 
     return (yy);
@@ -1845,5 +1845,5 @@
 	nord = 76;
 	lolim = 0;
-	uplim = Pi/2;
+	uplim = Pi/2.0;
 	halfheight = length/2.0;
 
@@ -2191,6 +2191,6 @@
 
     //handle arg=0 separately, as sin(t)/t -> 1 as t->0
-    arg1 = (mu/2)*cos(Pi*uu/2);
-    arg2 = (mu*aa/2)*sin(Pi*uu/2);
+    arg1 = (mu/2.0)*cos(Pi*uu/2.0);
+    arg2 = (mu*aa/2.0)*sin(Pi*uu/2.0);
     if(arg1==0.0) {
 		tmp1 = 1.0;
Index: sansmodels/src/sans/models/ParallelepipedModel.py
===================================================================
--- sansmodels/src/sans/models/ParallelepipedModel.py	(revision 2cb89e7643de78c7f4cf32435454270403afcfb9)
+++ sansmodels/src/sans/models/ParallelepipedModel.py	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -34,6 +34,6 @@
          scale           = 1.0 
          short_a         = 35.0 [A]
-         long_b          = 75.0 [A]
-         longer_c        = 400.0 [A]
+         short_b         = 75.0 [A]
+         long_c          = 400.0 [A]
          contrast        = 5.3e-006 [1/A²]
          background      = 0.0 [1/cm]
@@ -57,7 +57,7 @@
 		
 		scale:Scale factor
-		short_a: length of short side of the parallelepiped [A]
-		long_b: length of long side of the parallelepiped [A]
-		longer_c: length of longer side of the parallelepiped [A]
+		short_a: length of short edge  [A]
+		short_b: length of another short edge [A]
+		long_c: length of long edge  of the parallelepiped [A]
 		contrast: particle_sld - solvent_sld
 		background:Incoherent Background [1/cm]"""
@@ -67,6 +67,6 @@
         self.details['scale'] = ['', None, None]
         self.details['short_a'] = ['[A]', None, None]
-        self.details['long_b'] = ['[A]', None, None]
-        self.details['longer_c'] = ['[A]', None, None]
+        self.details['short_b'] = ['[A]', None, None]
+        self.details['long_c'] = ['[A]', None, None]
         self.details['contrast'] = ['[1/A²]', None, None]
         self.details['background'] = ['[1/cm]', None, None]
@@ -76,5 +76,5 @@
 
 		## fittable parameters
-        self.fixed=['short_a.width', 'long_b.width', 'longer_c.width', 'parallel_phi.width', 'parallel_psi.width', 'parallel_theta.width']
+        self.fixed=['short_a.width', 'short_b.width', 'long_c.width', 'parallel_phi.width', 'parallel_psi.width', 'parallel_theta.width']
         
         ## parameters with orientation
Index: sansmodels/src/sans/models/c_extensions/parallelepiped.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/parallelepiped.c	(revision 3c102d483d76eaaef80c6c9f1e39089cfbd6799b)
+++ sansmodels/src/sans/models/c_extensions/parallelepiped.c	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -23,6 +23,6 @@
 	dp[0] = pars->scale;
 	dp[1] = pars->short_a;
-	dp[2] = pars->long_b;
-	dp[3] = pars->longer_c;
+	dp[2] = pars->short_b;
+	dp[3] = pars->long_c;
 	dp[4] = pars->contrast;
 	dp[5] = pars->background;
@@ -98,5 +98,5 @@
  */
 double parallelepiped_analytical_2D_scaled(ParallelepipedParameters *pars, double q, double q_x, double q_y) {
-	double parallel_x, parallel_y, parallel_z;
+	double cparallel_x, cparallel_y, cparallel_z, bparallel_x, bparallel_y, parallel_x, parallel_y, parallel_z;
 	double q_z;
 	double alpha, vol, cos_val_c, cos_val_b, cos_val_a, edgeA, edgeB, edgeC;
@@ -106,12 +106,12 @@
 
 	edgeA = pars->short_a;
-	edgeB = pars->long_b;
-	edgeC = pars->longer_c;
+	edgeB = pars->short_b;
+	edgeC = pars->long_c;
 
 
     // parallelepiped c axis orientation
-    parallel_x = sin(pars->parallel_theta) * cos(pars->parallel_phi);
-    parallel_y = sin(pars->parallel_theta) * sin(pars->parallel_phi);
-    parallel_z = cos(pars->parallel_theta);
+    cparallel_x = sin(pars->parallel_theta) * cos(pars->parallel_phi);
+    cparallel_y = sin(pars->parallel_theta) * sin(pars->parallel_phi);
+    cparallel_z = cos(pars->parallel_theta);
 
     // q vector
@@ -120,22 +120,20 @@
     // Compute the angle btw vector q and the
     // axis of the parallelepiped
-    cos_val_c = parallel_x*q_x + parallel_y*q_y + parallel_z*q_z;
+    cos_val_c = cparallel_x*q_x + cparallel_y*q_y + cparallel_z*q_z;
     alpha = acos(cos_val_c);
 
     // parallelepiped a axis orientation
-    parallel_x = -(1-sin(pars->parallel_theta)*sin(pars->parallel_phi))*sin(pars->parallel_psi);//cos(pars->parallel_theta) * sin(pars->parallel_phi)*sin(pars->parallel_psi);
-    parallel_y = (1-sin(pars->parallel_theta)*sin(pars->parallel_phi))*cos(pars->parallel_psi);//cos(pars->parallel_theta) * cos(pars->parallel_phi)*cos(pars->parallel_psi);
+    parallel_x = sin(pars->parallel_psi);//cos(pars->parallel_theta) * sin(pars->parallel_phi)*sin(pars->parallel_psi);
+    parallel_y = cos(pars->parallel_psi);//cos(pars->parallel_theta) * cos(pars->parallel_phi)*cos(pars->parallel_psi);
 
-    //parallel_x = -(1-sin(pars->parallel_theta)*sin(pars->parallel_phi))*sin(pars->parallel_psi);//cos(pars->parallel_theta) * sin(pars->parallel_phi)*sin(pars->parallel_psi);
-    //parallel_y = (1-sin(pars->parallel_theta)*sin(pars->parallel_phi))*cos(pars->parallel_psi);//cos(pars->parallel_theta) * cos(pars->parallel_phi)*cos(pars->parallel_psi);
-    cos_val_a = (parallel_x*q_x + parallel_y*q_y);
+    cos_val_a = parallel_x*q_x + parallel_y*q_y;
 
 
 
     // parallelepiped b axis orientation
-    parallel_x = (1-sin(pars->parallel_theta)*cos(pars->parallel_phi))*cos(pars->parallel_psi);//cos(pars->parallel_theta) * cos(pars->parallel_phi)* cos(pars->parallel_psi);
-    parallel_y = (1-sin(pars->parallel_theta)*cos(pars->parallel_phi))*sin(pars->parallel_psi);//cos(pars->parallel_theta) * sin(pars->parallel_phi)* sin(pars->parallel_psi);
+    bparallel_x = sqrt(1-sin(pars->parallel_theta)*cos(pars->parallel_phi))*cos(pars->parallel_psi);//cos(pars->parallel_theta) * cos(pars->parallel_phi)* cos(pars->parallel_psi);
+    bparallel_y = sqrt(1-sin(pars->parallel_theta)*cos(pars->parallel_phi))*sin(pars->parallel_psi);//cos(pars->parallel_theta) * sin(pars->parallel_phi)* sin(pars->parallel_psi);
     // axis of the parallelepiped
-    cos_val_b = (parallel_x*q_x + parallel_y*q_y) ;
+    cos_val_b = sin(acos(cos_val_a)) ;
 
 
@@ -148,5 +146,5 @@
 
 	// Call the IGOR library function to get the kernel
-	answer = pkernel( q*edgeA, q*edgeB, q*edgeC, cos_val_a,cos_val_b,cos_val_c);
+	answer = pkernel( q*edgeA, q*edgeB, q*edgeC, sin(alpha)*cos_val_a,sin(alpha)*cos_val_b,cos_val_c);
 
 	// Multiply by contrast^2
Index: sansmodels/src/sans/models/c_extensions/parallelepiped.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/parallelepiped.h	(revision 2cb89e7643de78c7f4cf32435454270403afcfb9)
+++ sansmodels/src/sans/models/c_extensions/parallelepiped.h	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -7,15 +7,15 @@
 /** Structure definition for Parallelepiped parameters
  * [PYTHONCLASS] = ParallelepipedModel
- * [DISP_PARAMS] = short_a, long_b, longer_c,parallel_phi,parallel_psi, parallel_theta
+ * [DISP_PARAMS] = short_a, short_b, long_c,parallel_phi,parallel_psi, parallel_theta
    [DESCRIPTION] = <text> Form factor for a rectangular solid with uniform scattering length density.
 
 		scale:Scale factor
-		short_a: length of short side of the parallelepiped [A]
-		long_b: length of long side of the parallelepiped [A]
-		longer_c: length of longer side of the parallelepiped [A]
+		short_a: length of short edge  [A]
+		short_b: length of another short edge [A]
+		long_c: length of long edge  of the parallelepiped [A]
 		contrast: particle_sld - solvent_sld
 		background:Incoherent Background [1/cm]
 		</text>
-	[FIXED]= <text>short_a.width; long_b.width; longer_c.width;parallel_phi.width;parallel_psi.width; parallel_theta.width</text>
+	[FIXED]= <text>short_a.width; short_b.width; long_c.width;parallel_phi.width;parallel_psi.width; parallel_theta.width</text>
 	[ORIENTATION_PARAMS]= <text>parallel_phi;parallel_psi; parallel_theta; parallel_phi.width;parallel_psi.width; parallel_theta.width</text>
 
@@ -26,13 +26,13 @@
     //  [DEFAULT]=scale=1.0
     double scale;
-    ///  Length of short side of the parallelepiped [A]
+    ///  Length of short edge of the parallelepiped [A]
     //  [DEFAULT]=short_a=35 [A]
     double short_a;
-	/// Length of long side edge of the parallelepiped [A]
-    //  [DEFAULT]=long_b=75 [A]
-    double long_b;
-	/// Length of longer side of the parallelepiped [A]
-    //  [DEFAULT]=longer_c=400 [A]
-    double longer_c;
+	/// Length of short edge edge of the parallelepiped [A]
+    //  [DEFAULT]=short_b=75 [A]
+    double short_b;
+	/// Length of long edge of the parallelepiped [A]
+    //  [DEFAULT]=long_c=400 [A]
+    double long_c;
     /// Contrast [1/A²]
     //  [DEFAULT]=contrast=5.3e-6 [1/A²]
Index: sansmodels/src/sans/models/c_models/CParallelepipedModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CParallelepipedModel.cpp	(revision 2cb89e7643de78c7f4cf32435454270403afcfb9)
+++ sansmodels/src/sans/models/c_models/CParallelepipedModel.cpp	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -87,7 +87,7 @@
         // Initialize parameter dictionary
         PyDict_SetItemString(self->params,"short_a",Py_BuildValue("d",35.000000));
+        PyDict_SetItemString(self->params,"short_b",Py_BuildValue("d",75.000000));
         PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000));
-        PyDict_SetItemString(self->params,"long_b",Py_BuildValue("d",75.000000));
-        PyDict_SetItemString(self->params,"longer_c",Py_BuildValue("d",400.000000));
+        PyDict_SetItemString(self->params,"long_c",Py_BuildValue("d",400.000000));
         PyDict_SetItemString(self->params,"parallel_psi",Py_BuildValue("d",0.000000));
         PyDict_SetItemString(self->params,"parallel_phi",Py_BuildValue("d",0.000000));
@@ -102,9 +102,9 @@
         PyDict_SetItemString(self->dispersion, "short_a", disp_dict);
         disp_dict = PyDict_New();
-        self->model->long_b.dispersion->accept_as_source(visitor, self->model->long_b.dispersion, disp_dict);
-        PyDict_SetItemString(self->dispersion, "long_b", disp_dict);
+        self->model->short_b.dispersion->accept_as_source(visitor, self->model->short_b.dispersion, disp_dict);
+        PyDict_SetItemString(self->dispersion, "short_b", disp_dict);
         disp_dict = PyDict_New();
-        self->model->longer_c.dispersion->accept_as_source(visitor, self->model->longer_c.dispersion, disp_dict);
-        PyDict_SetItemString(self->dispersion, "longer_c", disp_dict);
+        self->model->long_c.dispersion->accept_as_source(visitor, self->model->long_c.dispersion, disp_dict);
+        PyDict_SetItemString(self->dispersion, "long_c", disp_dict);
         disp_dict = PyDict_New();
         self->model->parallel_phi.dispersion->accept_as_source(visitor, self->model->parallel_phi.dispersion, disp_dict);
@@ -247,7 +247,7 @@
 	    // Reader parameter dictionary
     self->model->short_a = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_a") );
+    self->model->short_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_b") );
     self->model->scale = PyFloat_AsDouble( PyDict_GetItemString(self->params, "scale") );
-    self->model->long_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_b") );
-    self->model->longer_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "longer_c") );
+    self->model->long_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_c") );
     self->model->parallel_psi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_psi") );
     self->model->parallel_phi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_phi") );
@@ -260,8 +260,8 @@
     disp_dict = PyDict_GetItemString(self->dispersion, "short_a");
     self->model->short_a.dispersion->accept_as_destination(visitor, self->model->short_a.dispersion, disp_dict);
-    disp_dict = PyDict_GetItemString(self->dispersion, "long_b");
-    self->model->long_b.dispersion->accept_as_destination(visitor, self->model->long_b.dispersion, disp_dict);
-    disp_dict = PyDict_GetItemString(self->dispersion, "longer_c");
-    self->model->longer_c.dispersion->accept_as_destination(visitor, self->model->longer_c.dispersion, disp_dict);
+    disp_dict = PyDict_GetItemString(self->dispersion, "short_b");
+    self->model->short_b.dispersion->accept_as_destination(visitor, self->model->short_b.dispersion, disp_dict);
+    disp_dict = PyDict_GetItemString(self->dispersion, "long_c");
+    self->model->long_c.dispersion->accept_as_destination(visitor, self->model->long_c.dispersion, disp_dict);
     disp_dict = PyDict_GetItemString(self->dispersion, "parallel_phi");
     self->model->parallel_phi.dispersion->accept_as_destination(visitor, self->model->parallel_phi.dispersion, disp_dict);
@@ -333,7 +333,7 @@
 	    // Reader parameter dictionary
     self->model->short_a = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_a") );
+    self->model->short_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_b") );
     self->model->scale = PyFloat_AsDouble( PyDict_GetItemString(self->params, "scale") );
-    self->model->long_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_b") );
-    self->model->longer_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "longer_c") );
+    self->model->long_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_c") );
     self->model->parallel_psi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_psi") );
     self->model->parallel_phi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_phi") );
@@ -346,8 +346,8 @@
     disp_dict = PyDict_GetItemString(self->dispersion, "short_a");
     self->model->short_a.dispersion->accept_as_destination(visitor, self->model->short_a.dispersion, disp_dict);
-    disp_dict = PyDict_GetItemString(self->dispersion, "long_b");
-    self->model->long_b.dispersion->accept_as_destination(visitor, self->model->long_b.dispersion, disp_dict);
-    disp_dict = PyDict_GetItemString(self->dispersion, "longer_c");
-    self->model->longer_c.dispersion->accept_as_destination(visitor, self->model->longer_c.dispersion, disp_dict);
+    disp_dict = PyDict_GetItemString(self->dispersion, "short_b");
+    self->model->short_b.dispersion->accept_as_destination(visitor, self->model->short_b.dispersion, disp_dict);
+    disp_dict = PyDict_GetItemString(self->dispersion, "long_c");
+    self->model->long_c.dispersion->accept_as_destination(visitor, self->model->long_c.dispersion, disp_dict);
     disp_dict = PyDict_GetItemString(self->dispersion, "parallel_phi");
     self->model->parallel_phi.dispersion->accept_as_destination(visitor, self->model->parallel_phi.dispersion, disp_dict);
@@ -408,7 +408,7 @@
 	    // Reader parameter dictionary
     self->model->short_a = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_a") );
+    self->model->short_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_b") );
     self->model->scale = PyFloat_AsDouble( PyDict_GetItemString(self->params, "scale") );
-    self->model->long_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_b") );
-    self->model->longer_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "longer_c") );
+    self->model->long_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_c") );
     self->model->parallel_psi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_psi") );
     self->model->parallel_phi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_phi") );
@@ -421,8 +421,8 @@
     disp_dict = PyDict_GetItemString(self->dispersion, "short_a");
     self->model->short_a.dispersion->accept_as_destination(visitor, self->model->short_a.dispersion, disp_dict);
-    disp_dict = PyDict_GetItemString(self->dispersion, "long_b");
-    self->model->long_b.dispersion->accept_as_destination(visitor, self->model->long_b.dispersion, disp_dict);
-    disp_dict = PyDict_GetItemString(self->dispersion, "longer_c");
-    self->model->longer_c.dispersion->accept_as_destination(visitor, self->model->longer_c.dispersion, disp_dict);
+    disp_dict = PyDict_GetItemString(self->dispersion, "short_b");
+    self->model->short_b.dispersion->accept_as_destination(visitor, self->model->short_b.dispersion, disp_dict);
+    disp_dict = PyDict_GetItemString(self->dispersion, "long_c");
+    self->model->long_c.dispersion->accept_as_destination(visitor, self->model->long_c.dispersion, disp_dict);
     disp_dict = PyDict_GetItemString(self->dispersion, "parallel_phi");
     self->model->parallel_phi.dispersion->accept_as_destination(visitor, self->model->parallel_phi.dispersion, disp_dict);
@@ -488,8 +488,8 @@
     if (!strcmp(par_name, "short_a")) {
         self->model->short_a.dispersion = dispersion;
-    } else    if (!strcmp(par_name, "long_b")) {
-        self->model->long_b.dispersion = dispersion;
-    } else    if (!strcmp(par_name, "longer_c")) {
-        self->model->longer_c.dispersion = dispersion;
+    } else    if (!strcmp(par_name, "short_b")) {
+        self->model->short_b.dispersion = dispersion;
+    } else    if (!strcmp(par_name, "long_c")) {
+        self->model->long_c.dispersion = dispersion;
     } else    if (!strcmp(par_name, "parallel_phi")) {
         self->model->parallel_phi.dispersion = dispersion;
Index: sansmodels/src/sans/models/c_models/models.hh
===================================================================
--- sansmodels/src/sans/models/c_models/models.hh	(revision eddff027b43bf6dfb5f35d7d30e3a458f64c1c41)
+++ sansmodels/src/sans/models/c_models/models.hh	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -50,6 +50,6 @@
 	Parameter scale;
 	Parameter short_a;
-	Parameter long_b;
-	Parameter longer_c;
+	Parameter short_b;
+	Parameter long_c;
 	Parameter contrast;
 	Parameter background;
Index: sansmodels/src/sans/models/c_models/parallelepiped.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/parallelepiped.cpp	(revision 3c102d483d76eaaef80c6c9f1e39089cfbd6799b)
+++ sansmodels/src/sans/models/c_models/parallelepiped.cpp	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -37,8 +37,8 @@
 	short_a     = Parameter(35.0, true);
 	short_a.set_max(1.0);
-	long_b     = Parameter(75.0, true);
-	long_b.set_min(1.0);
-	longer_c     = Parameter(400.0, true);
-	longer_c.set_min(1.0);
+	short_b     = Parameter(75.0, true);
+	short_b.set_min(1.0);
+	long_c     = Parameter(400.0, true);
+	long_c.set_min(1.0);
 	contrast   = Parameter(53.e-7);
 	background = Parameter(0.0);
@@ -61,6 +61,6 @@
 	dp[0] = scale();
 	dp[1] = short_a();
-	dp[2] = long_b();
-	dp[3] = longer_c();
+	dp[2] = short_b();
+	dp[3] = long_c();
 	dp[4] = contrast();
 	dp[5] = 0.0;
@@ -71,10 +71,10 @@
 
 	// Get the dispersion points for the longer_edgeB
-	vector<WeightPoint> weights_long_b;
-	long_b.get_weights(weights_long_b);
+	vector<WeightPoint> weights_short_b;
+	short_b.get_weights(weights_short_b);
 
 	// Get the dispersion points for the longuest_edgeC
-	vector<WeightPoint> weights_longer_c;
-	longer_c.get_weights(weights_longer_c);
+	vector<WeightPoint> weights_long_c;
+	long_c.get_weights(weights_long_c);
 
 
@@ -89,16 +89,16 @@
 
 		// Loop over longer_edgeB weight points
-		for(int j=0; j< (int)weights_long_b.size(); j++) {
-			dp[2] = weights_long_b[j].value;
+		for(int j=0; j< (int)weights_short_b.size(); j++) {
+			dp[2] = weights_short_b[j].value;
 
 			// Loop over longuest_edgeC weight points
-			for(int k=0; k< (int)weights_longer_c.size(); k++) {
-				dp[3] = weights_longer_c[k].value;
-
-				sum += weights_short_a[i].weight * weights_long_b[j].weight
-					* weights_longer_c[k].weight * Parallelepiped(dp, q);
+			for(int k=0; k< (int)weights_long_c.size(); k++) {
+				dp[3] = weights_long_c[k].value;
+
+				sum += weights_short_a[i].weight * weights_short_b[j].weight
+					* weights_long_c[k].weight * Parallelepiped(dp, q);
 
 				norm += weights_short_a[i].weight
-					 * weights_long_b[j].weight * weights_longer_c[k].weight;
+					 * weights_short_b[j].weight * weights_long_c[k].weight;
 			}
 		}
@@ -117,6 +117,6 @@
 	dp.scale      = scale();
 	dp.short_a   = short_a();
-	dp.long_b   = long_b();
-	dp.longer_c  = longer_c();
+	dp.short_b   = short_b();
+	dp.long_c  = long_c();
 	dp.contrast   = contrast();
 	dp.background = 0.0;
@@ -132,10 +132,10 @@
 
 	// Get the dispersion points for the longer_edgeB
-	vector<WeightPoint> weights_long_b;
-	long_b.get_weights(weights_long_b);
+	vector<WeightPoint> weights_short_b;
+	short_b.get_weights(weights_short_b);
 
 	// Get angular averaging for the longuest_edgeC
-	vector<WeightPoint> weights_longer_c;
-	longer_c.get_weights(weights_longer_c);
+	vector<WeightPoint> weights_long_c;
+	long_c.get_weights(weights_long_c);
 
 	// Get angular averaging for theta
@@ -160,10 +160,10 @@
 
 		// Loop over longer_edgeB weight points
-		for(int j=0; j< (int)weights_long_b.size(); j++) {
-			dp.long_b = weights_long_b[j].value;
+		for(int j=0; j< (int)weights_short_b.size(); j++) {
+			dp.short_b = weights_short_b[j].value;
 
 			// Average over longuest_edgeC distribution
-			for(int k=0; k< (int)weights_longer_c.size(); k++) {
-				dp.longer_c = weights_longer_c[k].value;
+			for(int k=0; k< (int)weights_long_c.size(); k++) {
+				dp.long_c = weights_long_c[k].value;
 
 				// Average over theta distribution
@@ -180,6 +180,6 @@
 
 							double _ptvalue = weights_short_a[i].weight
-								* weights_long_b[j].weight
-								* weights_longer_c[k].weight
+								* weights_short_b[j].weight
+								* weights_long_c[k].weight
 								* weights_parallel_theta[l].weight
 								* weights_parallel_phi[m].weight
@@ -192,6 +192,6 @@
 
 							norm += weights_short_a[i].weight
-								* weights_long_b[j].weight
-								* weights_longer_c[k].weight
+								* weights_short_b[j].weight
+								* weights_long_c[k].weight
 								* weights_parallel_theta[l].weight
 								* weights_parallel_phi[m].weight
Index: sansmodels/src/sans/models/test/EllipticalCylinderModel_avg.txt
===================================================================
--- sansmodels/src/sans/models/test/EllipticalCylinderModel_avg.txt	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
+++ sansmodels/src/sans/models/test/EllipticalCylinderModel_avg.txt	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -0,0 +1,40 @@
+<q_average> <2d_average> <1d_average>
+      0.01    450.443    450.538
+      0.02    228.492    228.583
+      0.03    146.821    146.905
+      0.04    99.4147    99.4891
+      0.05    68.9323    68.9963
+      0.06    48.1927    48.2457
+      0.07    33.0745    33.1168
+      0.08    22.2556    22.2879
+      0.09    14.5954     14.619
+       0.1    9.17509    9.19152
+      0.11    5.56564    5.57647
+      0.12    3.24036    3.24712
+      0.13    1.79904    1.80306
+      0.14    1.00773    1.01007
+      0.15   0.594332   0.595781
+      0.16   0.402332   0.403396
+      0.17   0.342629   0.343579
+      0.18    0.31809   0.318926
+      0.19   0.307435   0.307546
+       0.2    0.29984   0.297366
+      0.21   0.278055   0.270346
+      0.22   0.256689   0.243026
+      0.23    0.23293   0.215236
+      0.24   0.204926   0.184429
+      0.25   0.184026   0.161486
+      0.26   0.162934   0.139665
+      0.27   0.141375   0.118023
+      0.28   0.123117   0.100842
+      0.29   0.102219  0.0818505
+       0.3  0.0817566  0.0641323
+      0.31  0.0647355  0.0501547
+      0.32  0.0484443   0.036785
+      0.33  0.0376914  0.0282178
+      0.34  0.0322234  0.0239272
+      0.35  0.0297307  0.0214156
+      0.36  0.0319883  0.0227386
+      0.37  0.0356066  0.0248264
+      0.38  0.0384513   0.026131
+      0.39  0.0412045   0.027696
Index: sansmodels/src/sans/models/test/ParallelepipedModel_avg.txt
===================================================================
--- sansmodels/src/sans/models/test/ParallelepipedModel_avg.txt	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
+++ sansmodels/src/sans/models/test/ParallelepipedModel_avg.txt	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -0,0 +1,40 @@
+<q_average> <2d_average> <1d_average>
+      0.01    1725.91    1726.27
+      0.02    844.857     845.19
+      0.03    512.535    512.824
+      0.04    320.226    320.463
+      0.05    200.934    201.119
+      0.06    126.006    126.142
+      0.07    77.5009    77.5985
+      0.08    47.8653    47.9338
+      0.09     30.465    30.5136
+       0.1    19.9904     20.026
+      0.11    13.8118    13.8388
+      0.12     9.7314     9.7521
+      0.13    6.59526    6.61053
+      0.14    4.24325    4.25362
+      0.15    2.42938    2.43556
+      0.16    1.17861    1.18168
+      0.17   0.547176    0.54844
+      0.18    0.30821   0.308673
+      0.19   0.339807    0.33912
+       0.2   0.495962     0.4905
+      0.21    0.60034   0.582884
+      0.22   0.648638   0.614215
+      0.23   0.630062   0.582034
+      0.24   0.554903   0.499162
+      0.25   0.501067   0.439671
+      0.26   0.468122   0.400928
+      0.27   0.449514   0.374445
+      0.28   0.445149   0.363161
+      0.29   0.411549   0.328163
+       0.3   0.345371   0.269387
+      0.31   0.261773   0.201769
+      0.32   0.165108   0.125196
+      0.33  0.0886511  0.0669448
+      0.34  0.0466287  0.0361501
+      0.35  0.0314074  0.0235842
+      0.36  0.0433855  0.0316342
+      0.37  0.0625163  0.0442813
+      0.38   0.073453   0.050116
+      0.39  0.0790395  0.0535744
Index: sansmodels/src/sans/models/test/TriaxialEllipsoidModel_avg.txt
===================================================================
--- sansmodels/src/sans/models/test/TriaxialEllipsoidModel_avg.txt	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
+++ sansmodels/src/sans/models/test/TriaxialEllipsoidModel_avg.txt	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -0,0 +1,40 @@
+<q_average> <2d_average> <1d_average>
+      0.01    6164.57    6166.44
+      0.02    2194.43    2195.78
+      0.03    874.092    874.921
+      0.04    373.102    373.577
+      0.05    180.232    180.513
+      0.06    92.2845    92.4552
+      0.07    45.6843    45.7821
+      0.08    22.4145     22.466
+      0.09    11.5733    11.5978
+       0.1    6.36235    6.34288
+      0.11    4.16701    4.01228
+      0.12    3.30499    3.12787
+      0.13    2.65935    2.62135
+      0.14    2.10192     2.1788
+      0.15    1.67028    1.77924
+      0.16    1.31569    1.37152
+      0.17    1.00186    0.99509
+      0.18   0.763725   0.718548
+      0.19   0.579733   0.531899
+       0.2    0.43648   0.412982
+      0.21   0.349758    0.35239
+      0.22   0.295571   0.319034
+      0.23   0.262257    0.28683
+      0.24   0.243974   0.253296
+      0.25    0.22178   0.216689
+      0.26   0.187983   0.176596
+      0.27   0.151557   0.141555
+      0.28   0.119923   0.115955
+      0.29  0.0961798  0.0978735
+       0.3  0.0831647  0.0869363
+      0.31   0.076784  0.0810271
+      0.32  0.0731715   0.075475
+      0.33  0.0690195  0.0688126
+      0.34  0.0626216  0.0614295
+      0.35  0.0544358  0.0530275
+      0.36  0.0462065  0.0448143
+      0.37  0.0395145  0.0384918
+      0.38   0.034362  0.0339966
+      0.39  0.0306087   0.031047
Index: sansmodels/src/sans/models/test/validate_2D_3axes_shape_model.py
===================================================================
--- sansmodels/src/sans/models/test/validate_2D_3axes_shape_model.py	(revision 27953d102b93d16d5dff1ce0c3abfc7ce159adaa)
+++ sansmodels/src/sans/models/test/validate_2D_3axes_shape_model.py	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -25,5 +25,5 @@
         Averaging the 3-axes 2D scattering intensity give a slightly
         different output than the 1D function  
-        at hight Q (Q>~0.1). This is due(?) to the way the IGOR library 
+        at hight Q (Q>~0.2). This is due(?) to the way the IGOR library 
         averages, taking only 76 points in alpha, the angle between
         the axis of the ellipsoid and the q vector.
@@ -81,8 +81,8 @@
             psi_label = 'axis_psi'
             
-        output_f = open("%s_avg1.txt" % model.__class__.__name__,'w')
+        output_f = open("%s_avg.txt" % model.__class__.__name__,'w')
         output_f.write("<q_average> <2d_average> <1d_average>\n")
             
-        for i_q in range(1, 30):
+        for i_q in range(1, 40):
             q = 0.01*i_q
             sum = 0.0
@@ -114,5 +114,6 @@
 if __name__ == '__main__':
     validator = Validate2D()
-
+    
+    #te was not passed.
     te_passed =validator(TriaxialEllipsoidModel, points=76)
     pp_passed = validator(ParallelepipedModel, points=76)
@@ -122,6 +123,6 @@
     print "Model             Passed"
     print "TriaxialEllipsoid         %s" % te_passed
+    print "ParallelepipedModel    %s" % pp_passed
     print "EllipticalCylinder        %s" % ell_passed
-    print "ParallelepipedModel    %s" % pp_passed
  
         
Index: sansmodels/src/setup.py
===================================================================
--- sansmodels/src/setup.py	(revision 975ec8e8211549489759b5a5ffe3b60607de065b)
+++ sansmodels/src/setup.py	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
@@ -180,5 +180,5 @@
         srcdir+"/lamellarPS_HG.c",
         #srcdir+"/COblateModel.c",
-        "sans/models/c_models/CCoreShellSpheroidModel.cpp",
+        "sans/models/c_models/CCoreShellEllipsoidModel.cpp",
         "sans/models/c_models/spheroid.cpp",   
         srcdir+"/spheroid.c",             
