diff --git a/matlab/parallel/GiveCPUnumber.m b/matlab/parallel/GiveCPUnumber.m
index 6305a2502e16a6025db16b902e2a4c7b5fd4c5d3..d1d254d46de6ec55ca3e3607429694090250957c 100644
--- a/matlab/parallel/GiveCPUnumber.m
+++ b/matlab/parallel/GiveCPUnumber.m
@@ -4,12 +4,12 @@ function [nCPU]= GiveCPUnumber (ComputerInformations)
 % on the computer used for run parallel code.
 %
 % INPUTS
-% an array contained several fields that describe the hardaware 
+% an array contained several fields that describe the hardaware
 % software enviroments of a generic computer.
-%    
+%
 % OUTPUTS
-% The CPUs or Cores numbers of computer. 
-%        
+% The CPUs or Cores numbers of computer.
+%
 % SPECIAL REQUIREMENTS
 %    none
 
@@ -31,26 +31,41 @@ function [nCPU]= GiveCPUnumber (ComputerInformations)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 
-nCPU=-1;
+nCPU='';
 
-OffSet=27;
+Enviroment=-1;
 
-SringPosition=strfind(ComputerInformations, 'Processors:');
-nCPU=ComputerInformations(SringPosition+OffSet);
+% Determine a specific operating system or software version when necessary
+% for different command (sintax, name, ...).
+  Enviroment=isunix || (~matlab_ver_less_than('7.4') && ismac);
 
-% We check if there are Processors/Cores more than 9.
+switch Enviroment
+    case 0          %WINDOWS OPERATING SYSTEM
+        OffSet=27;
 
+        SringPosition=strfind(ComputerInformations, 'Processors:');
+        nCPU=ComputerInformations(SringPosition+OffSet);
 
-t0=ComputerInformations(SringPosition+OffSet+1);
-t1=str2num(t0);
-t1=isempty(t1);
+        % We check if there are Processors/Cores more than 9.
 
-% if t1 is 0 the machine have more than 9 CPU.
 
-if t1==0
-    nCPU=strcat(nCPU,t0);    
-end
+        t0=ComputerInformations(SringPosition+OffSet+1);
+        t1=str2num(t0);
+        t1=isempty(t1);
+
+        % if t1 is 0 the machine have more than 9 CPU.
 
-nCPU=str2num(nCPU);
+        if t1==0
+            nCPU=strcat(nCPU,t0);
+        end
 
-return
+        nCPU=str2num(nCPU);
+
+        return
+    case 1       %LIKE UNIX OPERATING SYSTEM
+        
+        % Da generalizzare a un numero di CPu maggiore di 9!!!
+
+        nCPU=str2num(ComputerInformations(length(ComputerInformations)-1))+1;
+
+end