Index: Orange/data/io.py
===================================================================
--- Orange/data/io.py	(revision 10245)
+++ Orange/data/io.py	(revision 10255)
@@ -390,4 +390,5 @@
     f.write(')\n')
 
+
 def toLibSVM(filename, example):
     """Save class:`Orange.data.Table` to file in LibSVM format"""
@@ -395,4 +396,6 @@
     Orange.classification.svm.tableToSVMFormat(example, open(filename, "wb"))
 
+
+@Orange.misc.deprecated_keywords({"createOnNew": "create_on_new"})
 def loadLibSVM(filename, create_on_new=MakeStatus.Incompatible, **kwargs):
     """Return class:`Orange.data.Table` containing data from file in LibSVM format"""
@@ -422,7 +425,4 @@
     table.setattr("attribute_load_status", attributeLoadStatus)
     return table
-loadLibSVM = Orange.misc.deprecated_keywords(
-{"createOnNew": "create_on_new"}
-)(loadLibSVM)
 
 
Index: Orange/evaluation/scoring.py
===================================================================
--- Orange/evaluation/scoring.py	(revision 10235)
+++ Orange/evaluation/scoring.py	(revision 10258)
@@ -1391,22 +1391,19 @@
 
 class AUC(list):
-    ByWeightedPairs = 0
-    ByPairs = 1
-    WeightedOneAgainstAll = 2
-    OneAgainstAll = 3
+    """
+    Compute the area under ROC curve given a set of experimental results.
+    For multivalued class problems, return the result of :obj:`by_weighted_pairs`.
+    If testing consisted of multiple folds, each fold is scored and
+    average score is returned. If a fold contains only instances with
+    same class value, folds will be merged.
+
+    :param test_results: test results to score
+    :param ignore_weights: ignore instance weights when calculating score
+    :param method: DEPRECATED, call the appropriate method directly.
+    """
 
     @replace_use_weights
     def __init__(self, test_results=None, method=0, ignore_weights=False):
-        """
-        Return the area under ROC curve given a set of experimental results.
-        For multivalued class problems, return the result of :obj:`by_weighted_pairs`.
-        If testing consisted of multiple folds, each fold is scored and
-        average score is returned. If a fold contains only instances with
-        same class value, folds will be merged.
-
-        :param test_results: test results to score
-        :param ignore_weights: ignore instance weights when calculating score
-        :param method: DEPRECATED, call the appropriate method directly.
-        """
+
         super(AUC, self).__init__()
 
@@ -1692,4 +1689,9 @@
 
 #Backward compatibility
+AUC.ByWeightedPairs = 0
+AUC.ByPairs = 1
+AUC.WeightedOneAgainstAll = 2
+AUC.OneAgainstAll = 3
+
 @replace_use_weights
 def AUC_binary(res, ignore_weights=False):
Index: Orange/misc/testing.py
===================================================================
--- Orange/misc/testing.py	(revision 10180)
+++ Orange/misc/testing.py	(revision 10247)
@@ -503,5 +503,8 @@
         with member_set(self.distance_constructor, "ignore_class", True):
             mat = distance_matrix(dataset, self.distance_constructor)
-
+            
+        self.assertIsInstance(mat, Orange.misc.SymMatrix)
+        self.assertEqual(mat.dim, len(dataset))
+        
         m = numpy.array(list(mat))
         self.assertTrue((m >= 0.0).all())
@@ -512,5 +515,5 @@
                     mat = distance_matrix(dataset, self.distance_constructor)
                 except orange.KernelException, ex:
-                    if "not supported" in ex.message:
+                    if "not supported" in str(ex):
                         return
                     else:
Index: Orange/testing/unit/tests/test_display_name_mapping.py
===================================================================
--- Orange/testing/unit/tests/test_display_name_mapping.py	(revision 10248)
+++ Orange/testing/unit/tests/test_display_name_mapping.py	(revision 10248)
@@ -0,0 +1,21 @@
+import unittest 
+
+import orange, Orange
+
+class TestNameMapping(unittest.TestCase):
+    def test_qualified_names(self):
+        """ Test that qualified names of core C++ objects 
+        map to the correct name in the Orange.* hierarchy.
+          
+        """
+        for cls in orange.__dict__.values():
+            if type(cls) == type:
+                try:
+                    cls2 = eval(cls.__module__ + "." + cls.__name__)
+                except AttributeError as err:
+                    self.assertTrue(False, cls.__module__ + "." + \
+                                    cls.__name__ + " does not exist")
+                
+                self.assertEqual(cls2, cls)
+#                if cls2 != cls:
+#                    print cls.__module__+"."+cls.__name__
Index: Orange/testing/unit/tests/test_ensemble.py
===================================================================
--- Orange/testing/unit/tests/test_ensemble.py	(revision 10151)
+++ Orange/testing/unit/tests/test_ensemble.py	(revision 10253)
@@ -32,9 +32,8 @@
         self.learner = orngEnsemble.RandomForestLearner()
         
-    @test_on_datasets(datasets=["iris"])
-    @unittest.expectedFailure
+    @test_on_datasets(datasets=testing.CLASSIFICATION_DATASETS + \
+                      testing.REGRESSION_DATASETS)
     def test_pickling_on(self, dataset):
-        raise NotImplemented("SmallTreeLearner pickling is not implemented")
-#        testing.LearnerTestCase.test_pickling_on(self, dataset)
+        testing.LearnerTestCase.test_pickling_on(self, dataset)
         
         
Index: Orange/testing/unit/tests/test_evaluation_scoring.py
===================================================================
--- Orange/testing/unit/tests/test_evaluation_scoring.py	(revision 10236)
+++ Orange/testing/unit/tests/test_evaluation_scoring.py	(revision 10259)
@@ -25,9 +25,7 @@
         auc = scoring.AUC(cv)
         self.assertEqual(len(auc), 1)
-        print auc
 
         auc = scoring.AUC(pt)
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_on_iris(self):
@@ -37,5 +35,4 @@
 
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_on_iris_by_pairs(self):
@@ -45,5 +42,4 @@
 
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_on_iris_by_weighted_pairs(self):
@@ -53,5 +49,4 @@
 
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_on_iris_one_against_all(self):
@@ -61,5 +56,4 @@
 
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_on_iris_weighted_one_against_all(self):
@@ -69,5 +63,4 @@
 
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_on_iris_single_class(self):
@@ -76,14 +69,10 @@
         auc = scoring.AUC.single_class(test_results)
         self.assertEqual(len(auc), 1)
-        print auc
         auc = scoring.AUC.single_class(test_results, 0)
         self.assertEqual(len(auc), 1)
-        print auc
         auc = scoring.AUC.single_class(test_results, 1)
         self.assertEqual(len(auc), 1)
-        print auc
         auc = scoring.AUC.single_class(test_results, 2)
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_on_iris_pair(self):
@@ -92,11 +81,8 @@
         auc = scoring.AUC.pair(test_results, 0, 1)
         self.assertEqual(len(auc), 1)
-        print auc
         auc = scoring.AUC.pair(test_results, 0, 2)
         self.assertEqual(len(auc), 1)
-        print auc
         auc = scoring.AUC.pair(test_results, 1, 2)
         self.assertEqual(len(auc), 1)
-        print auc
 
     def test_auc_matrix_on_iris(self):
@@ -106,5 +92,4 @@
         self.assertEqual(len(auc), 1)
         self.assertEqual(len(auc[0]), 3)
-        print auc
 
 
Index: Orange/testing/unit/tests/test_hclustering.py
===================================================================
--- Orange/testing/unit/tests/test_hclustering.py	(revision 9915)
+++ Orange/testing/unit/tests/test_hclustering.py	(revision 10251)
@@ -48,5 +48,5 @@
         root2 = hier.clone(root1)
         
-        order_leaves_py(root1, matrix, progressCallback=p)
+        order_leaves_py(root1, matrix, progress_callback=p)
         order_leaves_cpp(root2, matrix, progress_callback=p)
         
Index: Orange/testing/unit/tests/test_kmeans.py
===================================================================
--- Orange/testing/unit/tests/test_kmeans.py	(revision 9724)
+++ Orange/testing/unit/tests/test_kmeans.py	(revision 10257)
@@ -40,11 +40,9 @@
         self.assertEqual(centers[0].domain, table.domain)
         
-    
-    @unittest.expectedFailure
     def test_kmeans_fail(self):
         """ Test the reaction when centroids is larger then example table length
         """
-        data = iter(testDatasets()).next()
-        Clustering(data, len(data) + 1)
+        data = Orange.data.Table("iris")
+        self.assertRaises(Exception, Clustering, (data, len(data) + 1))
 
 
Index: Orange/testing/unit/tests/test_lasso.py
===================================================================
--- Orange/testing/unit/tests/test_lasso.py	(revision 10038)
+++ Orange/testing/unit/tests/test_lasso.py	(revision 10257)
@@ -9,5 +9,5 @@
     
     def setUp(self):
-        self.learner = lasso.LassoRegressionLearner(nBoot=2, nPerm=2)
+        self.learner = lasso.LassoRegressionLearner(n_boot=2, n_perm=2)
     
     @test_on_data
Index: Orange/testing/unit/tests/test_linregression.py
===================================================================
--- Orange/testing/unit/tests/test_linregression.py	(revision 10038)
+++ Orange/testing/unit/tests/test_linregression.py	(revision 10257)
@@ -20,5 +20,5 @@
     
     def setUp(self):
-        self.learner = linear.LinearRegressionLearner(ridgeLambda=2)
+        self.learner = linear.LinearRegressionLearner(ridge_lambda=2)
     
     @test_on_data
Index: Orange/testing/unit/tests/test_stepwise_wrapper.py
===================================================================
--- Orange/testing/unit/tests/test_stepwise_wrapper.py	(revision 9962)
+++ Orange/testing/unit/tests/test_stepwise_wrapper.py	(revision 10256)
@@ -15,5 +15,5 @@
         if len(dataset) > 100:
             dataset = dataset.select(
-                Orange.data.sample.SubsetIndices2(n=100)(dataset)
+                Orange.data.sample.SubsetIndices2(p0=100)(dataset)
                 )
         testing.LearnerTestCase.test_learner_on(self, dataset)
Index: Orange/testing/unit/tests/test_svm.py
===================================================================
--- Orange/testing/unit/tests/test_svm.py	(revision 9679)
+++ Orange/testing/unit/tests/test_svm.py	(revision 10249)
@@ -53,5 +53,5 @@
         # Need the data for ExamplesDistanceConstructor_Euclidean  
         self.learner = self.LEARNER(kernel_type=SVMLearner.Custom,
-                                    kernelFunc=RBFKernelWrapper(orange.ExamplesDistanceConstructor_Euclidean(data), gamma=0.5))
+                                    kernel_func=RBFKernelWrapper(orange.ExamplesDistanceConstructor_Euclidean(data), gamma=0.5))
         
         testing.LearnerTestCase.test_learner_on(self, data)
@@ -76,5 +76,5 @@
         reduced = rfe(data, num_selected)
         self.assertEqual(len(reduced.domain.attributes), num_selected)
-        scores = rfe.getAttrScores(data, stopAt=num_selected)
+        scores = rfe.get_attr_scores(data, stop_at=num_selected)
         self.assertEqual(len(data.domain.attributes) - num_selected, len(scores))
         self.assertTrue(set(reduced.domain.attributes).isdisjoint(scores.keys()))
@@ -83,5 +83,5 @@
         import cPickle
         rfe = RFE()
-        cPickle.loads(cPickle.dumps(rfe))
+        copy = cPickle.loads(cPickle.dumps(rfe))
 
 if __name__ == "__main__":
Index: docs/reference/rst/Orange.evaluation.scoring.rst
===================================================================
--- docs/reference/rst/Orange.evaluation.scoring.rst	(revision 10230)
+++ docs/reference/rst/Orange.evaluation.scoring.rst	(revision 10258)
@@ -50,7 +50,6 @@
 .. autofunction:: Brier_score
 
-.. autosingleton:: AUC
-.. autoclass:: AucClass
-    :members: __call__, by_weighted_pairs, by_pairs,
+.. autoclass:: AUC
+    :members: by_weighted_pairs, by_pairs,
               weighted_one_against_all, one_against_all, single_class, pair,
               matrix
Index: docs/reference/rst/code/scoring-example.py
===================================================================
--- docs/reference/rst/code/scoring-example.py	(revision 10230)
+++ docs/reference/rst/code/scoring-example.py	(revision 10258)
@@ -10,5 +10,5 @@
 AUCs = Orange.evaluation.scoring.AUC(res)
 
-print "%10s  %5s %5s" % ("", "AUC", "CA")
+print "%10s  %5s %5s" % ("Learner", "AUC", "CA")
 for l, _ in enumerate(learners):
     print "%10s: %5.3f %5.3f" % (learners[l].name, AUCs[l], CAs[l])
Index: install-scripts/mac/bundle-daily-build.sh
===================================================================
--- install-scripts/mac/bundle-daily-build.sh	(revision 9774)
+++ install-scripts/mac/bundle-daily-build.sh	(revision 10263)
@@ -8,5 +8,5 @@
 # Lists of add-ons to include
 STABLE_ADDONS=""
-DAILY_ADDONS="bioinformatics text"
+DAILY_ADDONS="Bioinformatics Text"
 
 # Sets error handler
@@ -19,45 +19,4 @@
 	exit 2
 fi
-
-# Clone hg repos if not yet local.
-if [ ! -e orange ]; then
-	hg clone https://bitbucket.org/biolab/orange
-fi
-
-cd orange
-hg pull --update
-
-if [ -e ../orange_archive ]; then
-	rm -rf ../orange_archive
-fi
-
-hg archive ../orange_archive
-
-DAILY_REVISION_1=`hg log -l1 daily | grep 'changeset:' | cut -d ' ' -f 4 | cut -d ':' -f 1`
-
-cd ..
-
-
-for addon in $DAILY_ADDONS ; do
-	if [ ! -e $addon ]; then
-		hg clone https://bitbucket.org/biolab/orange-addon-$addon $addon
-	fi
-
-	cd $addon
-	hg pull --update
-	
-	# This is where the addons will be build, so they don't 
-	# pollute the hg repos
-	if [ -e ../${addon}_archive ]; then
-		rm -rf ../${addon}_archive
-	fi
-
-	hg archive ../${addon}_archive
-	
-	cd ..
-done
-
-
-ORANGE_ARCHIVE=`pwd`/orange_archive
 
 # Defaults are current latest revisions in stable branch and trunk
@@ -73,16 +32,15 @@
     STABLE_REVISION=$STABLE_REVISION_2
 fi
-
-
-# versions of hg and svn repos are no longer in sync
-
-#DAILY_REVISION_2=${2:-`svn info --non-interactive http://orange.biolab.si/svn/orange/externals/trunk/ | grep 'Last Changed Rev:' | cut -d ' ' -f 4`}
-## svn info does not return proper exit status on an error so we check it this way
-#[ "$DAILY_REVISION_2" ] || exit 4
-#if [[ $DAILY_REVISION_1 -gt $DAILY_REVISION_2 ]]; then
-#    DAILY_REVISION=$DAILY_REVISION_1
-#else
-#    DAILY_REVISION=$DAILY_REVISION_2
-#fi
+DAILY_REVISION_1=${2:-`svn info --non-interactive http://orange.biolab.si/svn/orange/trunk/ | grep 'Last Changed Rev:' | cut -d ' ' -f 4`}
+# svn info does not return proper exit status on an error so we check it this way
+[ "$DAILY_REVISION_1" ] || exit 4
+DAILY_REVISION_2=${2:-`svn info --non-interactive http://orange.biolab.si/svn/orange/externals/trunk/ | grep 'Last Changed Rev:' | cut -d ' ' -f 4`}
+# svn info does not return proper exit status on an error so we check it this way
+[ "$DAILY_REVISION_2" ] || exit 4
+if [[ $DAILY_REVISION_1 -gt $DAILY_REVISION_2 ]]; then
+    DAILY_REVISION=$DAILY_REVISION_1
+else
+    DAILY_REVISION=$DAILY_REVISION_2
+fi
 
 echo "Preparing temporary directory."
@@ -96,9 +54,4 @@
 export CXXFLAGS="-arch ppc -arch i386"
 export LDFLAGS="-arch ppc -arch i386"
-
-
-###########################
-# Stable orange-1.0  bundle
-###########################
 
 if [ ! -e /Volumes/download/orange-bundle-1.0b.$STABLE_REVISION.dmg ]; then
@@ -221,21 +174,80 @@
 /Users/ailabc/mount-dirs.sh
 
-#########################
-# Daily orange 2.* bundle
-#########################
-
-if [ ! -e /Volumes/download/orange-bundle-hg-0.0.$DAILY_REVISION.dmg ]; then
+if [ ! -e /Volumes/download/orange-bundle-svn-0.0.$DAILY_REVISION.dmg ]; then
 	echo "Downloading bundle template."
 	svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/externals/trunk/install-scripts/mac/bundle/ /private/tmp/bundle/
 	
-	echo "Building and installing orange into the bundle."
-	cd $ORANGE_ARCHIVE
-	/private/tmp/bundle/Orange.app/Contents/MacOS/python setup.py install
-		
+	echo "Downloading Orange daily source code revision $DAILY_REVISION."
+	svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/orange/ /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/
+	svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/source/ /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/source/
+	svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/add-ons/orngCRS/src/ /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/source/crs/
+	
+	[ -e /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/doc/COPYING ] || svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/COPYING /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/doc/COPYING
+	[ -e /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/doc/LICENSES ] || svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/LICENSES /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/doc/LICENSES
+	
+	ln -s ../Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/ /private/tmp/bundle/Orange.app/Contents/Resources/orange
+	ln -s ../Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/doc/ /private/tmp/bundle/Orange.app/Contents/Resources/doc
+	
+	echo "Compiling."
+	cd /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/source/
+	make EXCLUDE_ORANGEQT=1
+	cd /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/source/crs/
+	make
+	mv _orngCRS.so ../../
+	cd /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/
+	
+	echo "Correcting install names for modules."
+	for module in *.so ; do
+		[ -L $module ] && continue
+		
+		install_name_tool -id @executable_path/../Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/$module $module
+		
+		perl -MFile::Spec::Functions=abs2rel -e '
+		for (`/usr/bin/otool -L -X $ARGV[0]`) {
+			next unless m|^\s+(/private/tmp/bundle/Orange.app/.*) \(.*\)$|;
+			system("/usr/bin/install_name_tool", "-change", $1, "\@loader_path/" . abs2rel($1), $ARGV[0]); 
+		}
+		' $module
+	done
+	
+	echo "Cleaning up."
+	rm -rf source/ c45.dll liborange_include.a updateOrange.py
+	
+	# Installation registration
+	echo "orange" > /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange.pth
+	
 	for addon in $DAILY_ADDONS ; do
-		cd $REPO_DIR/${addon}_archive
-		echo "Building $addon addon."
-		/private/tmp/bundle/Orange.app/Contents/MacOS/python setup.py install
-		
+		echo "Downloading Orange add-on $addon daily source code revision $DAILY_REVISION."
+		svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/add-ons/$addon/ /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/
+		
+		[ -e /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/doc/COPYING ] || svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/COPYING /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/doc/COPYING
+		[ -e /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/doc/LICENSES ] || svn export --non-interactive --revision $DAILY_REVISION http://orange.biolab.si/svn/orange/trunk/LICENSES /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/doc/LICENSES
+		
+		if [ -e /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/source/ ]; then
+			echo "Compiling add-on."
+			cd /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/source/
+			make
+			cd /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/
+			
+			echo "Correcting install names for modules."
+			for module in *.so ; do
+				[ -L $module ] && continue
+			
+				install_name_tool -id @executable_path/../Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange/add-ons/$addon/$module $module
+				
+				perl -MFile::Spec::Functions=abs2rel -e '
+				for (`/usr/bin/otool -L -X $ARGV[0]`) {
+					next unless m|^\s+(/private/tmp/bundle/Orange.app/.*) \(.*\)$|;
+					system("/usr/bin/install_name_tool", "-change", $1, "\@loader_path/" . abs2rel($1), $ARGV[0]); 
+				}
+				' $module
+			done
+		fi
+		
+		echo "Cleaning up."
+		rm -rf source/ setup.py
+		
+		# Installation registration
+		echo "orange/add-ons/$addon" > /private/tmp/bundle/Orange.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/orange-`echo $addon | tr "[:upper:]" "[:lower:]"`.pth
 	done
 	
@@ -270,6 +282,6 @@
 	
 	echo "Converting temporary image to a compressed image."
-	rm -f /private/tmp/orange-bundle-hg-0.0.$DAILY_REVISION.dmg
-	hdiutil convert /private/tmp/bundle.dmg -format UDZO -imagekey zlib-level=9 -o /private/tmp/orange-bundle-hg-0.0.$DAILY_REVISION.dmg
+	rm -f /private/tmp/orange-bundle-svn-0.0.$DAILY_REVISION.dmg
+	hdiutil convert /private/tmp/bundle.dmg -format UDZO -imagekey zlib-level=9 -o /private/tmp/orange-bundle-svn-0.0.$DAILY_REVISION.dmg
 	
 	echo "Cleaning up."
@@ -283,22 +295,20 @@
 echo "Removing old versions of bundles."
 # (Keeps last 5 versions.)
-perl -e 'unlink ((reverse sort </Volumes/download/orange-bundle-hg-0*.dmg>)[5..10000])'
+perl -e 'unlink ((reverse sort </Volumes/download/orange-bundle-svn-0*.dmg>)[5..10000])'
 perl -e 'unlink ((reverse sort </Volumes/download/orange-bundle-1*.dmg>)[5..10000])'
 
-if [ -e /private/tmp/orange-bundle-hg-0.0.$DAILY_REVISION.dmg ] || [ -e /private/tmp/orange-bundle-hg-0.0.$DAILY_REVISION.dmg ]; then
+if [ -e /private/tmp/orange-bundle-svn-0.0.$DAILY_REVISION.dmg ] || [ -e /private/tmp/orange-bundle-svn-0.0.$DAILY_REVISION.dmg ]; then
 	echo "Moving bundles to the download directory."
 	[ -e /private/tmp/orange-bundle-1.0b.$STABLE_REVISION.dmg ] && mv /private/tmp/orange-bundle-1.0b.$STABLE_REVISION.dmg /Volumes/download/
-	[ -e /private/tmp/orange-bundle-hg-0.0.$DAILY_REVISION.dmg ] && mv /private/tmp/orange-bundle-hg-0.0.$DAILY_REVISION.dmg /Volumes/download/
+	[ -e /private/tmp/orange-bundle-svn-0.0.$DAILY_REVISION.dmg ] && mv /private/tmp/orange-bundle-svn-0.0.$DAILY_REVISION.dmg /Volumes/download/
 	
 	echo "Setting permissions."
 	chmod +r /Volumes/download/orange-bundle-1.0b.$STABLE_REVISION.dmg
-	chmod +r /Volumes/download/orange-bundle-hg-0.0.$DAILY_REVISION.dmg
-
-# Don't register the bundles until hg version stabilizes
-	
-#	echo "Registering new bundles."
-#	egrep -v '^(MAC_STABLE|MAC_DAILY)=' /Volumes/download/filenames_mac.set > /Volumes/download/filenames_mac.set.new
-#	echo "MAC_STABLE=orange-bundle-1.0b.$STABLE_REVISION.dmg" >> /Volumes/download/filenames_mac.set.new
-#	echo "MAC_DAILY=orange-bundle-svn-0.0.$DAILY_REVISION.dmg" >> /Volumes/download/filenames_mac.set.new
-#	mv /Volumes/download/filenames_mac.set.new /Volumes/download/filenames_mac.set
-fi
+	chmod +r /Volumes/download/orange-bundle-svn-0.0.$DAILY_REVISION.dmg
+	
+	echo "Registering new bundles."
+	egrep -v '^(MAC_STABLE|MAC_DAILY)=' /Volumes/download/filenames_mac.set > /Volumes/download/filenames_mac.set.new
+	echo "MAC_STABLE=orange-bundle-1.0b.$STABLE_REVISION.dmg" >> /Volumes/download/filenames_mac.set.new
+	echo "MAC_DAILY=orange-bundle-svn-0.0.$DAILY_REVISION.dmg" >> /Volumes/download/filenames_mac.set.new
+	mv /Volumes/download/filenames_mac.set.new /Volumes/download/filenames_mac.set
+fi
Index: install-scripts/mac/update-all-scripts.sh
===================================================================
--- install-scripts/mac/update-all-scripts.sh	(revision 9731)
+++ install-scripts/mac/update-all-scripts.sh	(revision 10262)
@@ -4,26 +4,16 @@
 #
 
-# Clone the orange repo if not already present
-if [ ! -e orange ]; then
-	hg clone https://bitbucket.org/biolab/orange
-fi
-
-# Pull all changesets and update to latest
-cd orange
-hg pull --update
-cd ..
-
-cp orange/install-scripts/mac/update-all-scripts.sh ./
-cp orange/install-scripts/mac/bundle-64bit-daily-build.sh ./
-cp orange/install-scripts/mac/bundle-daily-build.sh ./
-cp orange/install-scripts/mac/dailyrun.sh ./
-cp orange/install-scripts/mac/dailyrun-finkonly-withsource.sh ./
-cp orange/install-scripts/mac/dailyrun-finkonly.sh ./
-cp orange/install-scripts/mac/dailyrun-bundleonly.sh ./
-cp orange/install-scripts/mac/fink-daily-build.sh ./
-cp orange/install-scripts/mac/fink-restore-selections.sh ./
-cp orange/install-scripts/mac/fink-selfupdate-orange.sh ./
-cp orange/install-scripts/mac/force-fink-daily-build.sh ./
-cp orange/install-scripts/mac/mount-dirs.sh ./
+curl --silent --output update-all-scripts.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/update-all-scripts.sh
+curl --silent --output bundle-64bit-daily-build.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/bundle-64bit-daily-build.sh
+curl --silent --output bundle-daily-build.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/bundle-daily-build.sh
+curl --silent --output dailyrun.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/dailyrun.sh
+curl --silent --output dailyrun-finkonly-withsource.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/dailyrun-finkonly-withsource.sh
+curl --silent --output dailyrun-finkonly.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/dailyrun-finkonly.sh
+curl --silent --output dailyrun-bundleonly.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/dailyrun-bundleonly.sh
+curl --silent --output fink-daily-build.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/fink-daily-build.sh
+curl --silent --output fink-restore-selections.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/fink-restore-selections.sh
+curl --silent --output fink-selfupdate-orange.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/fink-selfupdate-orange.sh
+curl --silent --output force-fink-daily-build.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/force-fink-daily-build.sh
+curl --silent --output mount-dirs.sh http://orange.biolab.si/svn/orange/trunk/install-scripts/mac/mount-dirs.sh
 
 chmod +x *.sh
Index: setup-site.cfg
===================================================================
--- setup-site.cfg	(revision 9571)
+++ setup-site.cfg	(revision 10250)
@@ -24,8 +24,12 @@
 #
 #  Currently you still have to set the search paths (for both
-# libraries and header files) using the CFLAGS, CXXFLAGS and 
+# libraries and header files) using the CFLAGS, CPPFLAGS and 
 # LDFLAGS env. variables for compiler and linker to find your
 # library (if not on the default search path). Support for 
 # configuring them through this file is planned. 
+#
+#  If building and installing with an automated package manager
+# (easy_install or pip) setup.py will also read '~/.orange-site.cfg'
+# file for configuration options.
 
 [GLOBALS]
Index: setup.py
===================================================================
--- setup.py	(revision 10134)
+++ setup.py	(revision 10250)
@@ -427,5 +427,8 @@
 import ConfigParser
 config = ConfigParser.RawConfigParser()
-config.read("setup-site.cfg")
+
+config.read(["setup-site.cfg",
+             os.path.expanduser("~/.orange-site.cfg")]
+            )
 
 orange_sources = get_source_files("source/orange/")
Index: source/orange/tdidt_simple.cpp
===================================================================
--- source/orange/tdidt_simple.cpp	(revision 10206)
+++ source/orange/tdidt_simple.cpp	(revision 10252)
@@ -785,11 +785,24 @@
 	int i;
 	string lbracket, rbracket;
+	string split_string;
 	SimpleTreeNode *node;
+
+	ss.exceptions(istream::failbit);
 
 	ASSERT(node = (SimpleTreeNode *)malloc(sizeof *node));
 	ss >> lbracket >> node->type >> node->children_size;
 
+
 	if (node->type != PredictorNode)
-		ss >> node->split_attr >> node->split;
+	{
+		ss >> node->split_attr;
+
+		/* Read split into a string and use strtod to parse it.
+		 * istream sometimes (on some platforms) seems to have problems
+		 * reading formated floats.
+		 */
+		ss >> split_string;
+		node->split = float(strtod(split_string.c_str(), NULL));
+	}
 
 	if (node->children_size) {
