diff --git a/include/class.orm.php b/include/class.orm.php
index b8977f0a02c4d3a2fff659b68653892d9f9b0c21..a1328a6fdb03e1b4c7ab8d2bd76aa30112840da2 100644
--- a/include/class.orm.php
+++ b/include/class.orm.php
@@ -612,7 +612,10 @@ class SqlAggregate extends SqlFunction {
     }
 
     function toSql($compiler, $model=false, $alias=false) {
-        $options = array('constraint'=>$this->constraint);
+        $options = array(
+                'constraint' => $this->constraint,
+                'distinct' => $this->distinct);
+
         list($field) = $compiler->getField($this->expr, $model, $options);
         return sprintf('%s(%s)%s', $this->func, $field,
             $alias && $this->alias ? ' AS '.$compiler->quote($this->alias) : '');
@@ -1373,6 +1376,10 @@ class SqlCompiler {
             $field = $alias.'.'.$this->quote($field);
         else
             $field = $this->quote($field);
+
+        if (isset($options['distinct']) && $options['distinct'])
+            $field = " DISTINCT $field";
+
         if (isset($options['model']) && $options['model'])
             $operator = $model;
         return array($field, $operator);