diff -ur linden.orig/indra/newview/llviewermessage.cpp linden/indra/newview/llviewermessage.cpp
--- linden.orig/indra/newview/llviewermessage.cpp	2007-09-14 16:53:58.000000000 -0400
+++ linden/indra/newview/llviewermessage.cpp	2007-09-18 18:10:58.288793236 -0400
@@ -157,6 +157,9 @@
 const U32 OFFER_THROTTLE_MAX_COUNT=5; //number of items per time period
 const F32 OFFER_THROTTLE_TIME=10.f; //time period in seconds
 
+//permission throttle
+const S32 PERMISSION_THROTTLE_COUNT=25;
+
 //script permissions
 const LLString SCRIPT_QUESTIONS[SCRIPT_PERMISSION_EOF] = 
 	{ 
@@ -828,9 +831,8 @@
 		//if we are throttled, don't display them - Gigs
 		if (check_offer_throttle(from_name, false))
 		{
-			// I'm not sure this is a good idea.  JC
+			// This is neccessary for "create notecard", etc to get the right buttons
 			bool show_keep_discard = item->getPermissions().getCreator() != gAgent.getID();
-			//bool show_keep_discard = true;
 			switch(item->getType())
 			{
 			case LLAssetType::AT_NOTECARD:
@@ -4437,6 +4439,10 @@
 	char object_name[255];		/* Flawfinder: ignore */
 	char owner_name[DB_FULL_NAME_BUF_SIZE];		/* Flawfinder: ignore */
 
+	//if the same joker is asking us for permission too much, ignore it!
+	static char last_owner_name[DB_FULL_NAME_BUF_SIZE];		/* Flawfinder: ignore */
+	static S32 count;
+
 	// taskid -> object key of object requesting permissions
 	msg->getUUIDFast(_PREHASH_Data, _PREHASH_TaskID, taskid );
 	// itemid -> script asset key of script requesting permissions
@@ -4445,6 +4451,20 @@
 	msg->getStringFast(_PREHASH_Data, _PREHASH_ObjectOwner, DB_FULL_NAME_BUF_SIZE, owner_name);
 	msg->getS32Fast(_PREHASH_Data, _PREHASH_Questions, questions );
 
+
+	//throttle permission spam 
+	if (strcmp(last_owner_name, owner_name) == 0)
+	{
+		count++;
+	}
+	else
+	{
+		count=0;
+		strcpy(last_owner_name,owner_name); /* Flawfinder: ignore */
+	}
+
+	if (count > PERMISSION_THROTTLE_COUNT) return;
+
 	// don't display permission requests if this object is muted - JS.
 	if (gMuteListp->isMuted(taskid)) return;
 
