diff --git a/modules/module-list.nix b/modules/module-list.nix
index 40b310829024..d140f7ad335a 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -47,6 +47,7 @@
   ./services/databases/postgresql.nix
   ./services/hardware/acpid.nix
   ./services/hardware/hal.nix
+  ./services/hardware/pcscd.nix
   ./services/hardware/udev.nix
   ./services/logging/klogd.nix
   ./services/logging/syslogd.nix
diff --git a/modules/services/hardware/pcscd.nix b/modules/services/hardware/pcscd.nix
new file mode 100644
index 000000000000..45684e17416a
--- /dev/null
+++ b/modules/services/hardware/pcscd.nix
@@ -0,0 +1,46 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+{
+
+  ###### interface
+
+  options = {
+  
+    services.pcscd = {
+
+      enable = mkOption {
+        default = false;
+        description = "Whether to enable the PCSC-Lite daemon.";
+      };
+      
+    };
+    
+  };
+  
+
+  ###### implementation
+
+  config = mkIf config.services.pcscd.enable {
+
+    jobs.pcscd =
+      { description = "PCSC-Lite daemon";
+
+        startOn = "started udev";
+
+        daemonType = "daemon";
+
+        # Add to the drivers directory the only drivers we have by now: ccid
+        preStart = ''
+            mkdir -p /var/lib/pcsc
+            rm -Rf /var/lib/pcsc/drivers
+            ln -s ${pkgs.ccid}/pcsc/drivers /var/lib/pcsc/
+        '';
+
+        exec = "${pkgs.pcsclite}/sbin/pcscd";
+      };
+      
+  };
+  
+}