Multiple faulty DHT11?

Hi
I'm trying a simple test of DHT11 and I have 4 different DHT11 all of them are way off by humidity.
I have put them in a sealed container for 48 hours with a NaCl with a SHT15 and an analog hygrometer.
The SHT show 78% and the analog meter shows 76% but all of my DHTs shows around 53%. Temperature are all 20-21 C.
I know the DHT11 has a +-5%RH but this is way off. I have also tried different libraries with the same readings.
The DHT is directly in the headers with a 5k6 pullup.
Is this normal? or should I just add 22 to my readings? that sounds wrong.
Thanks

The current library is this Arduino Playground - DHT11Lib

#include <DHT11.h>

dht11 DHT11;

#define DHT11PIN A1
#define DHT11pwrPin A0

void setup()
{
  pinMode(DHT11pwrPin, OUTPUT);
  digitalWrite(DHT11pwrPin,HIGH);
  Serial.begin(9600);
  Serial.println("DHT11 TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
}

void loop()
{
  Serial.println("\n");

  int chk = DHT11.read(DHT11PIN);

  Serial.print("Read sensor: ");
  switch (chk)
  {
    case DHTLIB_OK: 
                Serial.println("OK"); 
                break;
    case DHTLIB_ERROR_CHECKSUM: 
                Serial.println("Checksum error"); 
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                Serial.println("Time out error"); 
                break;
    default: 
                Serial.println("Unknown error"); 
                break;
  }

  Serial.print("Humidity (%): ");
  Serial.println((float)DHT11.humidity, 2);

  Serial.print("Temperature (�C): ");
  Serial.println((float)DHT11.temperature, 2);

  delay(2000);
}

Have you tried testing under other conditions? I don't see anything wrong with your code but I'm a neophyte myself. You might want to try using DHTLib instead of DHT11. Sometimes it just takes an updated library to fix your problems.

The accuracy of the DHT11 for humidity is not that good, but indeed this is way off.

A possible cause can be that you do not have 5.0 Volts on the sensor. Please check this with a Voltmeter.

My DHTlib will not improve on the values as the sensors are digital and the value is calculated inside.
Furthermore if you want to use the DHTlib be sure to use the 0.1.15 version as the lates 0.1.17 version has a serious BUG for the DHT11 only.

I have same problem and how i understand - need to increase delay from 2 to 5 second between read11. Stupid thing, but it working.

  if (scr_upd || !(now.second() % 5)) {
    DHT.read11(DHT11_PIN);

    dtostrf(DHT.temperature, 2, 0, buffer);
    sprintf(buffer, "% 2s\337C", buffer);
    display.setCursor(0, 1);
    display.print(buffer);
}