Index: build_tools/conda/README.md
===================================================================
--- build_tools/conda/README.md	(revision 981a1d481e8153bde06a09a8003026c8b6dc70fc)
+++ build_tools/conda/README.md	(revision cf20539c2e23399649a540401745f1af38a40b34)
@@ -48,2 +48,6 @@
 # $ conda config --set binstar_upload yes
 ```
+
+# Useful Links
+
+* http://conda.pydata.org/docs/build.html
Index: build_tools/conda/pyopencl/bld.bat
===================================================================
--- build_tools/conda/pyopencl/bld.bat	(revision 20b238dfddfbdd97221dc9a51df8c42be5b54664)
+++ build_tools/conda/pyopencl/bld.bat	(revision d7ee8b9b2d90c09aff5f273308fa3567dcdb3b14)
@@ -1,2 +1,15 @@
+xcopy %RECIPE_DIR%\bin %PREFIX%\DLLs /E
+xcopy %RECIPE_DIR%\include %PREFIX%\include /E
+xcopy %RECIPE_DIR%\lib %PREFIX%\libs /E
+
+xcopy %RECIPE_DIR%\bin %PREFIX%\Library\bin /E
+xcopy %RECIPE_DIR%\include %PREFIX%\Library\include /E
+xcopy %RECIPE_DIR%\lib %PREFIX%\Library\lib /E
+
+::"%PYTHON%" setup.py build -cmingw32
+"%PYTHON%" configure.py
+if errorlevel 1 exit 1
+"%PYTHON%" setup.py build
+if errorlevel 1 exit 1
 "%PYTHON%" setup.py install
 if errorlevel 1 exit 1
Index: sasview/setup_exe.py
===================================================================
--- sasview/setup_exe.py	(revision 61c93b3cfc5d374f5a5c067e1dc2cb6cda8b158b)
+++ sasview/setup_exe.py	(revision b9fc6745cc04a20a5022ab77ad4370eff5010021)
@@ -280,17 +280,27 @@
 # Copying the images directory to the distribution directory.
 for f in findall(images_dir):
-    if os.path.split(f)[0].count('.svn')==0:
+    if not ".svn" in f:
         data_files.append(("images", [f]))
 
 # Copying the HTML help docs
 for f in findall(media_dir):
-    if os.path.split(f)[0].count('.svn')==0:
+    if not ".svn" in f:
         data_files.append(("media", [f]))
 
 # Copying the sample data user data
 for f in findall(test_dir):
-    if os.path.split(f)[0].count('.svn')==0:
+    if not ".svn" in f:
         data_files.append(("test", [f]))
-        
+
+# See if the documentation has been built, and if so include it.
+doc_path = os.path.join(build_path, "doc")
+if os.path.exists(doc_path):
+    for dirpath, dirnames, filenames in os.walk(doc_path):
+        for filename in filenames:
+            sub_dir = os.path.join("doc", os.path.relpath(dirpath, doc_path))
+            data_files.append((sub_dir, [os.path.join(dirpath, filename)]))
+else:
+    raise Exception("You must first build the documentation before creating an installer.")
+
 if py26MSdll != None:
     # install the MSVC 9 runtime dll's into the application folder
Index: src/sas/dataloader/manipulations.py
===================================================================
--- src/sas/dataloader/manipulations.py	(revision 400155bab01bdb35b3cf83069f57cf9f47005bca)
+++ src/sas/dataloader/manipulations.py	(revision ddc192a80f9e0a4a44f726c03cffc4eeee73a528)
@@ -623,7 +623,7 @@
         phi_values = numpy.zeros(self.nbins_phi)
         phi_err    = numpy.zeros(self.nbins_phi)
-	
-	# Shift to apply to calculated phi values in order to center first bin at zero
-	phi_shift = Pi / self.nbins_phi
+    
+        # Shift to apply to calculated phi values in order to center first bin at zero
+        phi_shift = Pi / self.nbins_phi
 
         for npt in range(len(data)):
Index: src/sas/dataloader/readers/ascii_reader.py
===================================================================
--- src/sas/dataloader/readers/ascii_reader.py	(revision 794922220f2fb3b23dd08c648aabf87b4850596c)
+++ src/sas/dataloader/readers/ascii_reader.py	(revision ef3445e276566d82d290fc50c6d95ab9611b9973)
@@ -67,12 +67,5 @@
                     raise  RuntimeError, "ascii_reader: cannot open %s" % path
                 buff = input_f.read()
-                lines = buff.split('\n')
-                
-                #Jae could not find python universal line spliter:
-                #keep the below for now
-                # some ascii data has \r line separator,
-                # try it when the data is on only one long line
-                if len(lines) < 2 :
-                    lines = buff.split('\r')
+                lines = buff.splitlines()
                  
                 x  = numpy.zeros(0)
@@ -81,5 +74,5 @@
                 dx = numpy.zeros(0)
                 
-               #temp. space to sort data
+                #temp. space to sort data
                 tx  = numpy.zeros(0)
                 ty  = numpy.zeros(0)
@@ -220,5 +213,5 @@
                                 pass
                             
-                        x = numpy.append(x, _x) 
+                        x = numpy.append(x, _x)
                         y = numpy.append(y, _y)
                         
@@ -294,5 +287,4 @@
                         i += 1
                     except:
-
                         # It is data and meet non - number, then stop reading
                         if is_data == True:
Index: test/sasdataloader/test/utest_averaging.py
===================================================================
--- test/sasdataloader/test/utest_averaging.py	(revision 35ec2791ba4240f8154f552ce6ead4e850779a20)
+++ test/sasdataloader/test/utest_averaging.py	(revision ef3445e276566d82d290fc50c6d95ab9611b9973)
@@ -105,13 +105,15 @@
         r = Ring(r_min=.005, r_max=.01, 
                  center_x=self.data.detector[0].beam_center.x, 
-                 center_y=self.data.detector[0].beam_center.y)
-        r.nbins_phi = 20
+                 center_y=self.data.detector[0].beam_center.y,
+                 nbins = 20)
+        ##r.nbins_phi = 20
         
         o = r(self.data)
         answer = Loader().load('ring_testdata.txt')
-        for i in range(r.nbins_phi):
-            self.assertAlmostEqual(o.x[i], answer.x[i], 4)
-            self.assertAlmostEqual(o.y[i], answer.y[i], 4)
-            self.assertAlmostEqual(o.dy[i], answer.dy[i], 4)
+        
+        for i in range(r.nbins_phi - 1):
+            self.assertAlmostEqual(o.x[i + 1], answer.x[i], 4)
+            self.assertAlmostEqual(o.y[i + 1], answer.y[i], 4)
+            self.assertAlmostEqual(o.dy[i + 1], answer.dy[i], 4)
             
     def test_circularavg(self):
@@ -194,6 +196,9 @@
         import math
         
-        r = SectorPhi(r_min=.005, r_max=.01, phi_min=0, phi_max=math.pi*2.0)
-        r.nbins_phi = 20
+        r = SectorPhi(r_min=.005,
+                      r_max=.01,
+                      phi_min=0.15707963,
+                      phi_max=math.pi*2.-0.15707963,
+                      nbins=19)
         o = r(self.data)
 
