diff --git a/src/funcheck/scalacheck/ScalaCheck.scala b/src/funcheck/scalacheck/ScalaCheck.scala
index eecdd9e05bc58839873a7b8cdb0a500da1750286..3a339639ab41b183fccd19cc76ec58967ac0a30d 100644
--- a/src/funcheck/scalacheck/ScalaCheck.scala
+++ b/src/funcheck/scalacheck/ScalaCheck.scala
@@ -230,6 +230,8 @@ trait ScalaCheck extends FreshNameCreator {
     private def rhsGenDef(base: Tree)(d: DefDef)(extOwner: Symbol): Tree = {
       val DefDef(_,name,_,vparamss,retTpe,_) = d
       assert(vparamss.size <= 1, "currying is not supported. Change signature of "+d.symbol)
+      // XXX: quick fix to force creation of arbitrary objects for each data type, this should be refactored!!
+      Arbitrary.arbitrary(retTpe.asInstanceOf[TypeTree])
       
       if(vparamss.head.isEmpty)
         Gen.value(Apply(base, Nil))
@@ -259,6 +261,7 @@ trait ScalaCheck extends FreshNameCreator {
           }
         }
       
+        
         Gen.lzy(body)
       }
     }
@@ -333,7 +336,7 @@ trait ScalaCheck extends FreshNameCreator {
     tpe2arbApp += ThrowableClass.typeConstructor -> arbThrowable
     tpe2arbApp += DoubleClass.typeConstructor    -> arbDouble
     tpe2arbApp += CharClass.typeConstructor      -> arbChar
-    tpe2arbApp += StringClass.typeConstructor    -> arbString
+    tpe2arbApp += StringClass.typeConstructor    -> arbString  // XXX: NOT WORKING
     tpe2arbApp += OptionClass.typeConstructor    -> arbOption
     
     //lazy val ImmutableMapClass: Symbol = definitions.getClass(newTypeName("scala.collection.immutable.Map"))