diff --git a/doc/bird.sgml b/doc/bird.sgml
index 762b5fd3..bab4679f 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -1009,7 +1009,7 @@ on nonbroadcast networks.
 protocol ospf <name> {
 	rfc1583compat <switch>;
 	area <id> {
-		stub <switch>;
+		stub cost <num>;
 		tick <num>;
 		interface <interface pattern>
 		{
@@ -1047,8 +1047,10 @@ protocol ospf <name> {
 	 The most important area is
 	 the backbone (ID 0) to which every other area must be connected.
 
-	stub switch
-	 No external routes are flooded into stub areas. Default value is no.
+	stub cost num
+	 No external (except default) routes are flooded into stub areas.
+         Setting this value marks area stub with defined cost of default route.
+	 Default value is no. (Area is not stub.)
 
 	tick num
 	 The routing table calculation is not performed when a single link state
diff --git a/proto/ospf/config.Y b/proto/ospf/config.Y
index 459a236c..140cbb44 100644
--- a/proto/ospf/config.Y
+++ b/proto/ospf/config.Y
@@ -70,7 +70,7 @@ ospf_area_opts:
  ;
 
 ospf_area_item:
-   STUB bool { this_area->stub = $2 ; }
+   STUB COST expr { this_area->stub = $3 ; if($3<=0) cf_error("Stub cost must be greater than zero"); }
  | TICK expr { this_area->tick = $2 ; if($2<=0) cf_error("Tick must be greater than zero"); }
  | INTERFACE ospf_iface_list
  ;