diff --git a/src/libs/middlewares/reqQueryFields.js b/src/libs/middlewares/reqQueryFields.js
index 2b785d45b761c67144d162492974131ed5d2c1ee..dfa3a12ce40c1bb1a4024d982d8a8fbdf70d6049 100644
--- a/src/libs/middlewares/reqQueryFields.js
+++ b/src/libs/middlewares/reqQueryFields.js
@@ -9,13 +9,18 @@ function parseWhereValue(type, value) {
     if(type === 'double') return parseFloat(value);
     if(type === 'string') return '%'+value+'%';
     if(type === 'boolean') {
-        if (value.toLowerCase() === 'null') {
-            console.log('Fazendo uma consulta Null');
-            return null;
-        } else {
-            console.log('Fazendo uma consulta True');
-            return (value.toLowerCase() === 'true' || parseInt(value, 10) === 1);
+        if(value === null || typeof value === 'boolean') {
+            return value;
         }
+        if(typeof value === 'string') {
+            if(value.toLowerCase() === 'true' || value.toLowerCase() === '1') {
+                return true;
+            }
+            if(value.toLowerCase() === 'null') {
+                return null;
+            }
+        }
+        return false;
     }
 }
 
@@ -152,7 +157,15 @@ class ReqQueryFields {
                         // Fazemos o split e temos um array `['state', 41]`
                         const kv = param.split(':');
                         // Checa se há um valor. Se não tem, definimos como true.
-                        obj[kv[0]] = (typeof kv[1] === 'undefined') ? true : JSON.parse(kv[1]);
+                        if ( (typeof kv[1] === 'undefined')) {
+                            obj[kv[0]] = true;
+                        } else {
+                            try {
+                                obj[kv[0]] = JSON.parse(kv[1]);
+                            } catch(err) {
+                                obj[kv[0]] = kv[1];
+                            }
+                        }
                         // `obj` é agora `{kv[0]: kv[1]}` ou `{kv[0]: true}`.
                         // No exemplo `{'state': 41}`
                     }
@@ -243,10 +256,6 @@ class ReqQueryFields {
                             log.debug('whereValue');
                             log.debug(whereValue);
                             log.debug(`Where value é array? ${Array.isArray(whereValue)}`);
-                            // TODO: |
-                            // TODO: |
-                            // TODO: V
-                            //TODO: parse do valor do where onde apropriado!!!!!!!
 
                             let tbl = value.where.table || value.table;
                             // multiple where, only tested for  boolean filds
diff --git a/src/test/enrollment.js b/src/test/enrollment.js
index 7d9572ff708165ed7e519be6347c6e3d46feb034..024bcb97f9afde019aeb4178f1e982fc5c145018 100644
--- a/src/test/enrollment.js
+++ b/src/test/enrollment.js
@@ -237,6 +237,20 @@ describe('request enrollments', () => {
             });
     });
 
+    it('should list enrollments with multivalue filter and single value filter', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment?filter=region:[1,2],min_year:2015')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
     it('should list enrollments with valid dimensions and filters', (done) => {
         chai.request(server)
             .get('/api/v1/enrollment?dims=region,state,school_year,school,gender,period&filter=min_year:2015,max_year:2015,city:4106902')