diff --git a/include/triq.hrl b/include/triq.hrl
index fe09a4e..e611c6d 100644
--- a/include/triq.hrl
+++ b/include/triq.hrl
@@ -93,6 +93,7 @@
          bitstring/1,
          non_empty/1,
          resize/2,
+         noshrink/1,
          non_neg_integer/0,
          pos_integer/0,
 
diff --git a/src/triq.erl b/src/triq.erl
index 3d23d74..ede5e9e 100644
--- a/src/triq.erl
+++ b/src/triq.erl
@@ -22,7 +22,7 @@
 
 %%
 %% For each ?FORALL, we try to shrink the value
-%% this many iterations.
+%% this many iterations (if it is shrinkable).
 %%
 -define(SHRINK_COUNT, 1000).
 
@@ -66,6 +66,14 @@
     {ok, triq_rnd} = triq_rand_compat:init("triq_rnd"),
     ok.
 
+shrink_count(Domain) ->
+    case triq_dom:is_shrinkable(Domain) of
+        true ->
+            ?SHRINK_COUNT;
+        false ->
+            0
+    end.
+
 check_input(Fun,Input,IDom,#triq{count=Count}=QCT) ->
     try Fun(Input) of
         true ->
@@ -372,7 +380,7 @@
 
             %% Run the shrinking function
             %%
-            Simp = shrink_loop(Fun,Input,InputDom,?SHRINK_COUNT,tl(Context)),
+            Simp = shrink_loop(Fun,Input,InputDom,shrink_count(InputDom),tl(Context)),
 
             %%
             %% Compute the counter example
@@ -408,7 +416,7 @@
 %% ?FORALL smaller; after trying the outer.
 %%
 shrink_deeper(Input,[{_,F1,I1,G1}|T]) ->
-    [Input | shrink_loop(F1,I1,G1,?SHRINK_COUNT,T)];
+    [Input | shrink_loop(F1,I1,G1,shrink_count(G1),T)];
 shrink_deeper(Input,[]) -> [Input].
 
 
diff --git a/src/triq_dom.erl b/src/triq_dom.erl
index 455629f..e74a3a2 100644
--- a/src/triq_dom.erl
+++ b/src/triq_dom.erl
@@ -88,7 +88,8 @@
         {kind :: atom() | tuple(),
          pick = fun error_pick/2 :: pick_fun(T),
          shrink = fun error_shrink/2 :: shrink_fun(T),
-         empty_ok = true :: boolean()
+         empty_ok = true :: boolean(),
+         noshrink = false :: boolean()
         }).
 
 
@@ -102,6 +103,7 @@
 -record(resize,{size, dom}).
 -record(bind,  {dom, body}).
 -record(sized, {body}).
+-record(noshrink, {dom}).
 -record(suchthat,{dom,pred}).
 -record(bound_domain,{dom1,val1,dom2,fun2,size}).
 -record(choose,{min,max}).
@@ -138,6 +140,7 @@
          bitstring/1,
          non_empty/1,
          resize/2,
+         noshrink/1,
          non_neg_integer/0,
          pos_integer/0]).
 
@@ -154,6 +157,7 @@
 %% using a generator
 -export([bind/2,
          bindshrink/2,
+         is_shrinkable/1,
          suchthat/2,
          pick/2,
          shrink/2,
@@ -266,6 +270,8 @@
 %%
 %% @spec shrink(Domain::domain(T),Value::T) -> {domain(T), T}
 -spec shrink(domain(T),T) -> {domain(T), T}.
+shrink(Dom=#?DOM{noshrink=true}, Value) ->
+    {Dom, Value};
 shrink(Domain=#?DOM{shrink=SFun}, Value) ->
     SFun(Domain,Value);
 shrink(TupDom,Tup) when is_tuple(TupDom),
@@ -939,6 +945,14 @@
     Dom#?DOM{empty_ok=false}.
 
 
+%% @doc Tell whether the domain can possibly be shrinked.
+%% @private
+-spec is_shrinkable(domain(_)) -> boolean().
+is_shrinkable(#?DOM{noshrink=true}) ->
+    false;
+is_shrinkable(_) ->
+    true.
+
 %% @doc Support function for the `?LET(Vars,Dom1,Dom2)' macro.
 %% @private
 %% @spec bind(domain(T), fun( (T) -> domain(D) )) -> domain(D)
@@ -1144,8 +1158,8 @@
 -spec return(Value::Type) -> domain(Type).
 return(Val) ->
     domain(return,
-           fun(Self,_) -> {Self,Val} end,
-           fun(Self,_) -> {Self,Val} end).
+           fun(Self,_) -> {noshrink(Self),Val} end,
+           fun error_shrink/2).
 
 %% @doc Support function for the ?SIZED macro.
 %% @spec sized( fun((integer()) -> domain(T)) ) -> domain(T)
@@ -1162,6 +1176,17 @@
                end
          }.
 
+noshrink_pick(#?DOM{kind=#noshrink{dom=InnerDom}}, Size) ->
+    {Dom, Val} = pick(InnerDom, Size),
+    {noshrink(Dom), Val}.
+
+-spec noshrink(domain(T)) -> domain(T).
+noshrink(Dom) ->
+    #?DOM{
+        kind=#noshrink{dom=Dom},
+        pick=fun noshrink_pick/2,
+        noshrink=true}.
+
 -spec choose(M::integer(), N::integer()) -> domrec(integer()).
 choose(M,N) when is_integer(M), is_integer(N), M=<N ->
     #?DOM{kind={choose,M,N},
diff --git a/test/triq_tests.erl b/test/triq_tests.erl
index 832ca9c..18fbdf9 100644
--- a/test/triq_tests.erl
+++ b/test/triq_tests.erl
@@ -247,6 +247,17 @@
                 X > 1),
              false))).
 
+noshrink_test() ->
+    noshrink_test(100).
+
+noshrink_test(0) ->
+    true;
+noshrink_test(Size) ->
+    {Dom, Val} = triq_dom:pick(triq_dom:noshrink(any()), Size),
+    {ShrinkedDom, ShrinkedVal} = triq_dom:shrink(Dom, Val),
+    ?assertEqual({ShrinkedDom, ShrinkedVal}, {Dom, Val}),
+    noshrink_test(Size - 1).
+
 %%
 %% Test passing counterexamples to properties
 %%
