diff --git a/devel/Makefile b/devel/Makefile
index 9d72a1e0b9e5..e4b623a4cf67 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -554,6 +554,7 @@
     SUBDIR += hs-pcre-light-ghc
     SUBDIR += hs-readline
     SUBDIR += hs-safe
+    SUBDIR += hs-smallcheck
     SUBDIR += hs-uniplate
     SUBDIR += hs-utf8-string-ghc
     SUBDIR += hs-uuagc
diff --git a/devel/hs-smallcheck/Makefile b/devel/hs-smallcheck/Makefile
new file mode 100644
index 000000000000..ce61407d3d25
--- /dev/null
+++ b/devel/hs-smallcheck/Makefile
@@ -0,0 +1,89 @@
+# New ports collection makefile for: hs-smallcheck
+# Date created:        December 20 2009
+# Whom:                Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME=	smallcheck
+PORTVERSION=	0.4
+CATEGORIES=	devel haskell
+MASTER_SITES=	http://hackage.haskell.org/packages/archive/${PORTNAME}/${PORTVERSION}/
+PKGNAMEPREFIX=	hs-
+
+MAINTAINER=	jacula@gmail.com
+COMMENT=	Another lightweight testing library in Haskell
+
+BUILD_DEPENDS+=	ghc:${PORTSDIR}/lang/ghc
+RUN_DEPENDS+=	ghc:${PORTSDIR}/lang/ghc
+
+GHC_VERSION=		6.10.4
+SMALLCHECK_VERSION=	${PORTVERSION}
+
+GHC_CMD=	${LOCALBASE}/bin/ghc
+SETUP_CMD=	./setup
+
+EXAMPLESDIR=	${PREFIX}/share/examples/${DISTNAME}
+PORTEXAMPLES=	*
+
+DATADIR=	${PREFIX}/share/${DISTNAME}
+PORTDATA=	*
+
+DOCSDIR=	${PREFIX}/share/doc/${DISTNAME}
+SMALLCHECK_LIBDIR_REL=	lib/${DISTNAME}
+
+PLIST_SUB=	GHC_VERSION=${GHC_VERSION} \
+		SMALLCHECK_VERSION=${SMALLCHECK_VERSION} \
+		SMALLCHECK_LIBDIR_REL=${SMALLCHECK_LIBDIR_REL}
+
+.if defined(NOPORTDOCS)
+PLIST_SUB+=	NOPORTDOCS=""
+.else
+PLIST_SUB+=	NOPORTDOCS="@comment "
+.endif
+
+.if !defined(NOPORTDOCS)
+
+PORT_HADDOCK!=	(cd  ${.CURDIR}/../../lang/ghc && ${MAKE} -V PORT_HADDOCK)
+.if !empty(PORT_HADDOCK:M?0)
+BUILD_DEPENDS+=	haddock:${PORTSDIR}/devel/hs-haddock
+.endif
+BUILD_DEPENDS+=	HsColour:${PORTSDIR}/print/hs-hscolour
+
+HSCOLOUR_VERSION=	1.15
+HSCOLOUR_DATADIR=	${PREFIX}/share/hscolour-${HSCOLOUR_VERSION}
+
+PORTDOCS=	*
+.endif
+
+.SILENT:
+
+do-configure:
+	cd ${WRKSRC} && ${GHC_CMD} --make Setup.hs -o setup -package Cabal
+.if !defined(NOPORTDATA)
+	cd ${WRKSRC} && ${SETUP_CMD} configure --haddock-options=-w --prefix=${PREFIX}
+.else
+	cd ${WRKSRC} && ${SETUP_CMD} configure --haddock-options=-w --prefix=${PREFIX} \
+	    --datadir='' --datasubdir='' --docdir='${DOCSDIR}'
+.endif
+
+do-build:
+	cd ${WRKSRC} && ${SETUP_CMD} build \
+		     && ${SETUP_CMD} register --gen-script
+
+.if !defined(NOPORTDOCS)
+	cd ${WRKSRC} && ${SETUP_CMD} haddock --hyperlink-source \
+					     --hscolour-css=${HSCOLOUR_DATADIR}/hscolour.css
+.endif
+
+do-install:
+	cd ${WRKSRC} && ${SETUP_CMD} install \
+		     && ${INSTALL_SCRIPT} register.sh ${PREFIX}/${SMALLCHECK_LIBDIR_REL}/register.sh
+.if !defined(NOPORTEXAMPLES)
+	${MKDIR} ${EXAMPLESDIR} && cd ${WRKSRC}/examples && ${COPYTREE_SHARE} \* ${EXAMPLESDIR}
+.endif
+
+post-install:
+	${RM} -f ${PREFIX}/lib/ghc-${GHC_VERSION}/package.conf.old
+
+.include <bsd.port.mk>
diff --git a/devel/hs-smallcheck/distinfo b/devel/hs-smallcheck/distinfo
new file mode 100644
index 000000000000..195ff6801e80
--- /dev/null
+++ b/devel/hs-smallcheck/distinfo
@@ -0,0 +1,3 @@
+MD5 (smallcheck-0.4.tar.gz) = dbb3e22742e5ef5f00ec9a5328408936
+SHA256 (smallcheck-0.4.tar.gz) = aa86853b3c480fb3d13115823a7b70126c136ed4913261cd7c354f35aa1c015b
+SIZE (smallcheck-0.4.tar.gz) = 21543
diff --git a/devel/hs-smallcheck/files/patch-smallcheck.cabal b/devel/hs-smallcheck/files/patch-smallcheck.cabal
new file mode 100644
index 000000000000..ed435b3bde14
--- /dev/null
+++ b/devel/hs-smallcheck/files/patch-smallcheck.cabal
@@ -0,0 +1,29 @@
+--- smallcheck.cabal.orig	2009-12-25 17:11:58.000000000 +0000
++++ smallcheck.cabal	2009-12-25 17:17:57.000000000 +0000
+@@ -16,17 +16,19 @@
+ Build-Depends: base, haskell98
+ Build-Type:    Simple
+ 
+-Extra-source-files: examples/numeric/NumProps.hs, examples/logical/LogicProps.hs,
++Extra-source-files: examples/numeric/NumProps.hs, examples/numeric/README,
++                    examples/logical/LogicProps.hs, examples/logical/README,
+                     examples/imperative/Interpreter.hs, examples/imperative/Syntax.hs,
+                     examples/imperative/Machine.hs, examples/imperative/Behaviour.hs,
+                     examples/imperative/Properties.hs, examples/imperative/Value.hs,
+                     examples/imperative/StackMap.hs, examples/imperative/Compiler.hs,
+-                    examples/listy/ListProps.hs, examples/regular/Regular.hs,
+-                    examples/circuits/BitAdd.hs, examples/circuits/Mux.hs, examples/circuits/Sad.hs,
+-                    examples/binarytries/BinaryTries.hs
++                    examples/imperative/README, examples/listy/ListProps.hs,
++                    examples/listy/README, examples/regular/Regular.hs,
++                    examples/regular/README, examples/circuits/BitAdd.hs,
++                    examples/circuits/Mux.hs, examples/circuits/Sad.hs,
++                    examples/circuits/README, examples/binarytries/BinaryTries.hs,
++                    examples/binarytries/README
+ 
+-Data-files:         examples/numeric/README, examples/logical/README, examples/imperative/README,
+-                    examples/listy/README, examples/regular/README, examples/circuits/README,
+-                    examples/binarytries/README, README
++Data-files: README
+ 
+ Exposed-modules:    Test.SmallCheck
diff --git a/devel/hs-smallcheck/pkg-descr b/devel/hs-smallcheck/pkg-descr
new file mode 100644
index 000000000000..e321eb4c0b3a
--- /dev/null
+++ b/devel/hs-smallcheck/pkg-descr
@@ -0,0 +1,6 @@
+SmallCheck is similar to QuickCheck (Claessen and Hughes 2000-) but
+instead of testing for a sample of randomly generated values, SmallCheck
+tests properties for all the finitely many values up to some depth,
+progressively increasing the depth used.
+
+WWW: http://hackage.haskell.org/package/smallcheck
diff --git a/devel/hs-smallcheck/pkg-plist b/devel/hs-smallcheck/pkg-plist
new file mode 100644
index 000000000000..5df1123c4525
--- /dev/null
+++ b/devel/hs-smallcheck/pkg-plist
@@ -0,0 +1,14 @@
+@comment $FreeBSD$
+%%SMALLCHECK_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/HSsmallcheck-%%SMALLCHECK_VERSION%%.o
+%%SMALLCHECK_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/Test/SmallCheck.hi
+%%SMALLCHECK_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/libHSsmallcheck-%%SMALLCHECK_VERSION%%.a
+%%SMALLCHECK_LIBDIR_REL%%/register.sh
+%%NOPORTDOCS%%%%DOCSDIR%%/LICENSE
+%%NOPORTDOCS%%@dirrmtry %%DOCSDIR%%
+@dirrm %%SMALLCHECK_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/Test
+@dirrm %%SMALLCHECK_LIBDIR_REL%%/ghc-%%GHC_VERSION%%
+@dirrm %%SMALLCHECK_LIBDIR_REL%%
+@exec /bin/sh %D/%%SMALLCHECK_LIBDIR_REL%%/register.sh
+@exec /bin/rm -f %D/lib/ghc-%%GHC_VERSION%%/package.conf.old
+@unexec %D/bin/ghc-pkg unregister smallcheck
+@unexec /bin/rm -f %D/lib/ghc-%%GHC_VERSION%%/package.conf.old