diff --git a/SystemInformation.cxx b/SystemInformation.cxx
index a45d2ae0604326e7559b3dc9159b84970cbfc2d8..4a9414267e2237d24ec43b9539026d1bbd0c277c 100644
--- a/SystemInformation.cxx
+++ b/SystemInformation.cxx
@@ -2186,7 +2186,6 @@ int SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
   // Physical ids returned by Linux don't distinguish cores.
   // We want to record the total number of cores in this->NumberOfPhysicalCPU
   // (checking only the first proc)
-
   kwsys_stl::string cores =
                         this->ExtractValueFromCpuInfoFile(buffer,"cpu cores");
   int numberOfCoresPerCPU=atoi(cores.c_str());
@@ -2194,8 +2193,11 @@ int SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
 
 #else // __CYGWIN__
   // does not have "physical id" entries, neither "cpu cores"
-  // this has to be fixed for hyper-threading.
-  this->NumberOfPhysicalCPU=this->NumberOfLogicalCPU;
+  // this has to be fixed for hyper-threading.  
+  kwsys_stl::string cpucount =
+    this->ExtractValueFromCpuInfoFile(buffer,"cpu count");
+  this->NumberOfPhysicalCPU=
+    this->NumberOfLogicalCPU = atoi(cpucount.c_str());
 #endif
 
   // LogicalProcessorsPerPhysical>1 => hyperthreading.