diff --git a/include/Webservices/VtigerModuleOperation.php b/include/Webservices/VtigerModuleOperation.php
index 493e21449a00b5b5b03ca3f679db26cbe3583572..f6e1ceee182b78be11bb28374c19aff83ea88f95 100644
--- a/include/Webservices/VtigerModuleOperation.php
+++ b/include/Webservices/VtigerModuleOperation.php
@@ -174,6 +174,7 @@ class VtigerModuleOperation extends WebserviceEntityOperation {
 		$meta = $parser->getObjectMetaData();
 		$this->pearDB->startTransaction();
 		$result = $this->pearDB->pquery($mysql_query, array());
+        $tableIdColumn = $meta->getIdColumn();
 		$error = $this->pearDB->hasFailedTransaction();
 		$this->pearDB->completeTransaction();
 		
@@ -187,10 +188,13 @@ class VtigerModuleOperation extends WebserviceEntityOperation {
 		$output = array();
 		for($i=0; $i<$noofrows; $i++){
 			$row = $this->pearDB->fetchByAssoc($result,$i);
-			if(!$meta->hasPermission(EntityMeta::$RETRIEVE,$row["crmid"])){
+			//NOTE : this permission check is not needed. If module does not have view permission
+            // then vtws_query API is restriction it. Module private check is added in the query itself,
+            // so this looks like additional overhead which can be removed.
+			/*if(!$meta->hasPermission(EntityMeta::$RETRIEVE,$row[$tableIdColumn])){
 				continue;
-			}
-			$output[$row["crmid"]] = DataTransform::sanitizeDataWithColumn($row,$meta);
+			}*/
+			$output[$row[$tableIdColumn]] = DataTransform::sanitizeDataWithColumn($row,$meta);
 		}
 		
 		$newOutput = array();
@@ -200,7 +204,7 @@ class VtigerModuleOperation extends WebserviceEntityOperation {
             foreach($output as $id => $row1) {
                 if(!empty($tags[$id])) $output[$id]['tags'] = $tags[$id];
                 $newOutput[] = $output[$id];
-            }
+	}
         }
 		return $newOutput;
 	}